Module: RubyVM::RJIT::CType::Immediate
- Defined in:
- lib/ruby_vm/rjit/c_type.rb
Class Method Summary collapse
Class Method Details
.find(size, signed) ⇒ Object
49 50 51 52 53 |
# File 'lib/ruby_vm/rjit/c_type.rb', line 49 def self.find(size, signed) fiddle_type = TYPE_MAP.fetch(size) fiddle_type = -fiddle_type unless signed new(fiddle_type) end |
.new(fiddle_type) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ruby_vm/rjit/c_type.rb', line 31 def self.new(fiddle_type) name = Fiddle.constants.find do |const| const.start_with?('TYPE_') && Fiddle.const_get(const) == fiddle_type.abs end&.name name = name.delete_prefix('TYPE_') if fiddle_type.negative? name.prepend('U') end CPointer.with_class_name('Immediate', name, cache: true) do CPointer::Immediate.define(fiddle_type) end end |
.parse(ctype) ⇒ Object
45 46 47 |
# File 'lib/ruby_vm/rjit/c_type.rb', line 45 def self.parse(ctype) new(Fiddle::Importer.parse_ctype(ctype)) end |