Author: Armin Rigo <[email protected]>
Branch:
Changeset: r977:33292fa6fbea
Date: 2012-09-27 19:01 +0200
http://bitbucket.org/cffi/cffi/changeset/33292fa6fbea/
Log: Fix (thanks Hakan Ardo)
diff --git a/cffi/model.py b/cffi/model.py
--- a/cffi/model.py
+++ b/cffi/model.py
@@ -313,6 +313,7 @@
class EnumType(StructOrUnionOrEnum):
kind = 'enum'
partial = False
+ partial_resolved = False
def __init__(self, name, enumerators, enumvalues):
self.name = name
@@ -320,7 +321,7 @@
self.enumvalues = enumvalues
def check_not_partial(self):
- if self.partial:
+ if self.partial and not self.partial_resolved:
from . import ffiplatform
raise ffiplatform.VerificationMissing(self._get_c_name(''))
diff --git a/cffi/vengine_cpy.py b/cffi/vengine_cpy.py
--- a/cffi/vengine_cpy.py
+++ b/cffi/vengine_cpy.py
@@ -582,7 +582,7 @@
enumvalues = [getattr(module, enumerator)
for enumerator in tp.enumerators]
tp.enumvalues = tuple(enumvalues)
- tp.partial = False
+ tp.partial_resolved = True
def _loaded_cpy_enum(self, tp, name, module, library):
for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues):
diff --git a/cffi/vengine_gen.py b/cffi/vengine_gen.py
--- a/cffi/vengine_gen.py
+++ b/cffi/vengine_gen.py
@@ -394,7 +394,7 @@
enumvalues = [self._load_constant(True, tp, enumerator, module)
for enumerator in tp.enumerators]
tp.enumvalues = tuple(enumvalues)
- tp.partial = False
+ tp.partial_resolved = True
else:
BFunc = self.ffi.typeof("int(*)(char*)")
funcname = '_cffi_e_%s_%s' % (prefix, name)
diff --git a/cffi/verifier.py b/cffi/verifier.py
--- a/cffi/verifier.py
+++ b/cffi/verifier.py
@@ -121,7 +121,7 @@
del self._vengine._f
if must_close:
file.close()
- if file is None:
+ if must_close:
self._has_source = True
def _compile_module(self):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit