diff options
author | Armin Rigo <arigo@tunes.org> | 2014-01-14 09:06:06 +0100 |
---|---|---|
committer | Armin Rigo <arigo@tunes.org> | 2014-01-14 09:06:06 +0100 |
commit | caedfd9210778c664494c16ec14540bfba3a9412 (patch) | |
tree | f628b55eb5d0aa29372227a9afc036640fe96149 /cffi/model.py | |
parent | 598008bfc3a39a69ca00c32b2405524c4740ebea (diff) | |
download | cffi-caedfd9210778c664494c16ec14540bfba3a9412.tar.gz |
Issue 131: support ffi.cdef("...", packed=True)
Diffstat (limited to 'cffi/model.py')
-rw-r--r-- | cffi/model.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cffi/model.py b/cffi/model.py index bf23c22..d348be9 100644 --- a/cffi/model.py +++ b/cffi/model.py @@ -255,6 +255,7 @@ class StructOrUnion(StructOrUnionOrEnum): fixedlayout = None completed = False partial = False + packed = False def __init__(self, name, fldnames, fldtypes, fldbitsize): self.name = name @@ -311,7 +312,11 @@ class StructOrUnion(StructOrUnionOrEnum): fldtypes = [tp.get_cached_btype(ffi, finishlist) for tp in self.fldtypes] lst = list(zip(self.fldnames, fldtypes, self.fldbitsize)) - ffi._backend.complete_struct_or_union(BType, lst, self) + sflags = 0 + if self.packed: + sflags = 8 # SF_PACKED + ffi._backend.complete_struct_or_union(BType, lst, self, + -1, -1, sflags) # else: fldtypes = [] |