[New-bugs-announce] [issue18225] ctypes Structure data size is incorrect

Tomer Levi report at bugs.python.org
Sat Jun 15 18:42:24 CEST 2013


New submission from Tomer Levi:

Whenever you create a ctypes.Structure with mixed ctypes, the size of all components is calculated by the size of largest one. This is especially irritating when trying to use Structure on bytearray.
The problem repeated for me in Python2.6 and 2.7 (both 32bit and 64bit versions) [My computer is 64bit]

Example:
#Creating a Structure that should take up 5 bytes
class Test(ctypes.Structure):
    _fields_ = [("test", ctypes.c_byte),
                ("test2", ctypes.c_uint32),]

#Initiating the Structure
Test.from_buffer(bytearray(5))

--- OUTPUT ----

Traceback (most recent call last):

  File "<ipython-input-45-cd4b7501baee>", line 1, in <module>
    Test.from_buffer(bytearray(5))

ValueError: Buffer size too small (5 instead of at least 8 bytes)

----------
components: ctypes
messages: 191213
nosy: Tomer.Levi
priority: normal
severity: normal
status: open
title: ctypes Structure data size is incorrect
type: behavior
versions: Python 2.6, Python 2.7

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue18225>
_______________________________________


More information about the New-bugs-announce mailing list