Method: Fiddle::ValueUtil#unsigned_value

Defined in:
lib/fiddle/value.rb

#unsigned_value(val, ty) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/fiddle/value.rb', line 6

def unsigned_value(val, ty)
  case ty.abs
  when TYPE_CHAR
    [val].pack("c").unpack("C")[0]
  when TYPE_SHORT
    [val].pack("s!").unpack("S!")[0]
  when TYPE_INT
    [val].pack("i!").unpack("I!")[0]
  when TYPE_LONG
    [val].pack("l!").unpack("L!")[0]
  else
    if defined?(TYPE_LONG_LONG) and
      ty.abs == TYPE_LONG_LONG
      [val].pack("q").unpack("Q")[0]
    else
      val
    end
  end
end