[pypy-svn] r79558 - pypy/branch/fast-forward/lib_pypy/_ctypes

afa at codespeak.net afa at codespeak.net
Fri Nov 26 15:25:50 CET 2010


Author: afa
Date: Fri Nov 26 15:25:48 2010
New Revision: 79558

Modified:
   pypy/branch/fast-forward/lib_pypy/_ctypes/structure.py
Log:
"_abstract_" Structure cannot be created


Modified: pypy/branch/fast-forward/lib_pypy/_ctypes/structure.py
==============================================================================
--- pypy/branch/fast-forward/lib_pypy/_ctypes/structure.py	(original)
+++ pypy/branch/fast-forward/lib_pypy/_ctypes/structure.py	Fri Nov 26 15:25:48 2010
@@ -117,6 +117,8 @@
 
     def __new__(self, name, cls, typedict):
         res = type.__new__(self, name, cls, typedict)
+        if "_abstract_" in typedict:
+            return res
         if isinstance(cls[0], StructOrUnionMeta):
             cls[0]._make_final()
         if '_fields_' in typedict:
@@ -186,6 +188,8 @@
 
     def __new__(cls, *args, **kwds):
         self = super(_CData, cls).__new__(cls, *args, **kwds)
+        if '_abstract_' in cls.__dict__:
+            raise TypeError("abstract class")
         if hasattr(cls, '_ffistruct'):
             self.__dict__['_buffer'] = self._ffistruct(autofree=True)
         return self



More information about the Pypy-commit mailing list