summaryrefslogtreecommitdiff
path: root/cffi/model.py
diff options
context:
space:
mode:
authorArmin Rigo <arigo@tunes.org>2014-01-14 09:06:06 +0100
committerArmin Rigo <arigo@tunes.org>2014-01-14 09:06:06 +0100
commitcaedfd9210778c664494c16ec14540bfba3a9412 (patch)
treef628b55eb5d0aa29372227a9afc036640fe96149 /cffi/model.py
parent598008bfc3a39a69ca00c32b2405524c4740ebea (diff)
downloadcffi-caedfd9210778c664494c16ec14540bfba3a9412.tar.gz
Issue 131: support ffi.cdef("...", packed=True)
Diffstat (limited to 'cffi/model.py')
-rw-r--r--cffi/model.py7
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 = []