diff options
Diffstat (limited to 'ext/fiddle/lib/fiddle/pack.rb')
-rw-r--r-- | ext/fiddle/lib/fiddle/pack.rb | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/ext/fiddle/lib/fiddle/pack.rb b/ext/fiddle/lib/fiddle/pack.rb index 22eccedb76..eb99fe090d 100644 --- a/ext/fiddle/lib/fiddle/pack.rb +++ b/ext/fiddle/lib/fiddle/pack.rb @@ -18,17 +18,17 @@ module Fiddle } PACK_MAP = { - TYPE_VOIDP => "l!", + TYPE_VOIDP => "L!", TYPE_CHAR => "c", TYPE_SHORT => "s!", TYPE_INT => "i!", TYPE_LONG => "l!", TYPE_FLOAT => "f", TYPE_DOUBLE => "d", - -TYPE_CHAR => "c", - -TYPE_SHORT => "s!", - -TYPE_INT => "i!", - -TYPE_LONG => "l!", + -TYPE_CHAR => "C", + -TYPE_SHORT => "S!", + -TYPE_INT => "I!", + -TYPE_LONG => "L!", } SIZE_MAP = { @@ -46,9 +46,10 @@ module Fiddle } if defined?(TYPE_LONG_LONG) ALIGN_MAP[TYPE_LONG_LONG] = ALIGN_MAP[-TYPE_LONG_LONG] = ALIGN_LONG_LONG - PACK_MAP[TYPE_LONG_LONG] = PACK_MAP[-TYPE_LONG_LONG] = "q" + PACK_MAP[TYPE_LONG_LONG] = "q" + PACK_MAP[-TYPE_LONG_LONG] = "Q" SIZE_MAP[TYPE_LONG_LONG] = SIZE_MAP[-TYPE_LONG_LONG] = SIZEOF_LONG_LONG - PACK_MAP[TYPE_VOIDP] = "q" if SIZEOF_LONG_LONG == SIZEOF_VOIDP + PACK_MAP[TYPE_VOIDP] = "Q" if SIZEOF_LONG_LONG == SIZEOF_VOIDP end def align(addr, align) |