-
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. (cherry picked from commit 07f1658a)
2d1653aa
| Adı |
Son kayıt (commit)
|
Son güncelleme |
|---|---|---|
| .. | ||
| darwin | ||
| libffi | ||
| libffi_msvc | ||
| libffi_osx | ||
| _ctypes.c | ||
| _ctypes_test.c | ||
| _ctypes_test.h | ||
| callbacks.c | ||
| callproc.c | ||
| cfield.c | ||
| ctypes.h | ||
| ctypes_dlfcn.h | ||
| libffi.diff | ||
| malloc_closure.c | ||
| stgdict.c |