Class: LLVM::ExecutionEngine::ModuleCollection
- Inherits:
-
Object
- Object
- LLVM::ExecutionEngine::ModuleCollection
- Defined in:
- lib/llvm/execution_engine.rb
Instance Method Summary collapse
- #add(mod) ⇒ ModuleCollection (also: #<<)
-
#delete(mod) ⇒ LLVM::Module
Deleted module.
-
#initialize(engine) ⇒ ModuleCollection
constructor
A new instance of ModuleCollection.
Constructor Details
#initialize(engine) ⇒ ModuleCollection
Returns a new instance of ModuleCollection.
94 95 96 |
# File 'lib/llvm/execution_engine.rb', line 94 def initialize(engine) @engine = engine end |
Instance Method Details
#add(mod) ⇒ ModuleCollection Also known as: <<
100 101 102 |
# File 'lib/llvm/execution_engine.rb', line 100 def add(mod) tap { C.add_module(@engine, mod) } end |
#delete(mod) ⇒ LLVM::Module
Returns deleted module.
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/llvm/execution_engine.rb', line 106 def delete(mod) error = FFI::MemoryPointer.new(:pointer) out_mod = FFI::MemoryPointer.new(:pointer) status = C.remove_module(@engine, mod, out_mod, error) if status.zero? LLVM::Module.from_ptr(out_mod.read_pointer) else errorp = error.read_pointer = errorp.read_string unless errorp.null? C.(error) error.autorelease=false raise "Error removing module: #{}" end end |