Author: Manuel Jacob
Branch:
Changeset: r68782:4916f1d812ea
Date: 2014-01-20 14:12 +0100
http://bitbucket.org/pypy/pypy/changeset/4916f1d812ea/
Log: Add support for packed structs in _cffi_backend (ported from
cffi/c5e17441bc96).
diff --git a/pypy/module/_cffi_backend/newtype.py
b/pypy/module/_cffi_backend/newtype.py
--- a/pypy/module/_cffi_backend/newtype.py
+++ b/pypy/module/_cffi_backend/newtype.py
@@ -118,6 +118,7 @@
SF_MSVC_BITFIELDS = 1
SF_GCC_ARM_BITFIELDS = 2
SF_GCC_BIG_ENDIAN = 4
+SF_PACKED = 8
if sys.platform == 'win32':
DEFAULT_SFLAGS = SF_MSVC_BITFIELDS
@@ -190,8 +191,8 @@
boffset = 0 # reset each field at offset 0
#
# update the total alignment requirement, but skip it if the
- # field is an anonymous bitfield
- falign = ftype.alignof()
+ # field is an anonymous bitfield or if SF_PACKED
+ falign = 1 if sflags & SF_PACKED else ftype.alignof()
do_align = True
if (sflags & SF_GCC_ARM_BITFIELDS) == 0 and fbitsize >= 0:
if (sflags & SF_MSVC_BITFIELDS) == 0:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit