typelib: Fix byte order issue

This commit is contained in:
James Westman 2023-09-14 10:19:49 -05:00
parent 0c02195510
commit 057c767fbb

View file

@ -64,11 +64,11 @@ class Field:
if not mask or sys.byteorder == "little": if not mask or sys.byteorder == "little":
self._shift = shift self._shift = shift
elif self._type == "u8" or self._type == "i8": elif self._type == "u8" or self._type == "i8":
self._shift = 7 - shift self._shift = 8 - (shift + mask)
elif self._type == "u16" or self._type == "i16": elif self._type == "u16" or self._type == "i16":
self._shift = 15 - shift self._shift = 16 - (shift + mask)
else: else:
self._shift = 31 - shift self._shift = 32 - (shift + mask)
self._mask = (1 << mask) - 1 if mask else None self._mask = (1 << mask) - 1 if mask else None
self._name = f"{offset}__{type}__{shift}__{mask}" self._name = f"{offset}__{type}__{shift}__{mask}"