Module: Mitie::Utils

Defined in:
lib/mitie/utils.rb

Class Method Summary collapse

Class Method Details

.array_to_pointer(text) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/mitie/utils.rb', line 3

def self.array_to_pointer(text)
  # malloc uses memset to set all bytes to 0
  tokens_ptr = Fiddle::Pointer.malloc(Fiddle::SIZEOF_VOIDP * (text.size + 1))
  text.size.times do |i|
    tokens_ptr[i * Fiddle::SIZEOF_VOIDP, Fiddle::SIZEOF_VOIDP] = Fiddle::Pointer.to_ptr(text[i]).ref
  end
  tokens_ptr
end

.check_range(range, num_tokens) ⇒ Object



12
13
14
15
16
# File 'lib/mitie/utils.rb', line 12

def self.check_range(range, num_tokens)
  if range.none? || !(0..(num_tokens - 1)).cover?(range)
    raise ArgumentError, "Invalid range"
  end
end

.read_double(ptr) ⇒ Object



18
19
20
# File 'lib/mitie/utils.rb', line 18

def self.read_double(ptr)
  ptr.to_s(Fiddle::SIZEOF_DOUBLE).unpack1("d")
end