Skip to content

Commit 84be7fa

Browse files
committed
support unpack from ctype pointers
1 parent 66041fa commit 84be7fa

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

cstruct/mem_cstruct.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ def unpack_from(self, buffer: Optional[bytes], offset: int = 0, flexible_array_l
7373
self.__mem__ = ctypes.create_string_buffer(self.size + 1)
7474
elif isinstance(buffer, ctypes.Array):
7575
self.__mem__ = buffer
76+
elif isinstance(buffer, int):
77+
# buffer is a pointer
78+
self.__mem__ = ctypes.cast(buffer, ctypes.POINTER(ctypes.c_char * self.size)).contents
7679
else:
7780
self.__mem__ = ctypes.create_string_buffer(buffer)
7881
for field, field_type in self.__fields_types__.items():

0 commit comments

Comments
 (0)