Spec-Zone.ru › Ruby 3.4
  1. Fiddle::
  2. Закреплённый

class Fiddle::Pinned

Родительский класс:
Object

Публичные методы класса

new (object) Показать исходный код
# File ext/fiddle/lib/fiddle/ffi_backend.rb, line 557
def initialize(object)
  @object = object
end
Fiddle::Pinned.new(object) → pinned_object Показать исходный код
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;
}

Создаёт новую закреплённую ссылку на объект. Экземпляр Fiddle::Pinned предотвратит перемещение object сборщиком мусора (GC).

Публичные методы экземпляра

clear () Показать исходный код
# File ext/fiddle/lib/fiddle/ffi_backend.rb, line 568
def clear
  @object = nil
end

Удаляет ссылку на объект, закреплённый этим экземпляром.

cleared? () Показать исходный код
# File ext/fiddle/lib/fiddle/ffi_backend.rb, line 572
def cleared?
  @object.nil?
end

Возвращает true, если ссылка была удалена, иначе возвращает false.

ref () Показать исходный код
# File ext/fiddle/lib/fiddle/ffi_backend.rb, line 561
def ref
  if @object.nil?
    raise ClearedReferenceError, "`ref` called on a cleared object"
  end
  @object
end

Возвращает объект, на который ссылается этот закреплённый экземпляр.

Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API