• Pauli Virtanen's avatar
    bpo-10746: Fix ctypes PEP 3118 type codes for c_long, c_bool, c_int (#31) · 07f1658a
    Pauli Virtanen yazdı
    Ctypes currently produces wrong pep3118 type codes for several types.
    E.g. memoryview(ctypes.c_long()).format gives "<l" on 64-bit platforms,
    but it should be "<q" instead for sizeof(c_long) == 8
    
    The problem is that the '<>' endian specification in the struct syntax
    also turns on the "standard size" mode, which makes type characters have
    a platform-independent meaning, which does not match with the codes used
    internally in ctypes.  The struct module format syntax also does not
    allow specifying native-size non-native-endian items.
    
    This commit adds a converter function that maps the internal ctypes
    codes to appropriate struct module standard-size codes in the pep3118
    format strings. The tests are modified to check for this.
    07f1658a
Adı
Son kayıt (commit)
Son güncelleme
..
macholib Loading commit data...
test Loading commit data...
__init__.py Loading commit data...
_endian.py Loading commit data...
util.py Loading commit data...
wintypes.py Loading commit data...