Class: Fiddle::Pinned
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/fiddle/ffi_backend.rb, ext/fiddle/pinned.c |
Class Method Summary
- .new(object) ⇒ Pinned constructor
Instance Attribute Summary
- #cleared? ⇒ Boolean readonly
Instance Method Summary
- #clear
-
#new(object) ⇒ Pinned
constructor
Create a new pinned object reference.
- #ref
Constructor Details
.new(object) ⇒ Pinned
# File 'lib/fiddle/ffi_backend.rb', line 557
def initialize(object) @object = object end
#new(object) ⇒ Pinned
Create a new pinned object reference. The Pinned
instance will prevent the GC from moving object
.
# File 'ext/fiddle/pinned.c', line 52
static VALUE initialize(VALUE self, VALUE ref) { struct pinned_data *data; TypedData_Get_Struct(self, struct pinned_data, &pinned_data_type, data); RB_OBJ_WRITE(self, &data->ptr, ref); return self; }
Instance Attribute Details
#cleared? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/fiddle/ffi_backend.rb', line 572
def cleared? @object.nil? end
Instance Method Details
#clear
[ GitHub ]# File 'lib/fiddle/ffi_backend.rb', line 568
def clear @object = nil end
#ref
[ GitHub ]# File 'lib/fiddle/ffi_backend.rb', line 561
def ref if @object.nil? raise ClearedReferenceError, "`ref` called on a cleared object" end @object end