Sha256: 83f5ca9f4c32121eda532dec06a0407f9443714a13779f2787dd7674a1af31a7
Contents?: true
Size: 726 Bytes
Versions: 8
Compression:
Stored size: 726 Bytes
Contents
# frozen_string_literal: true require "gir_ffi/class_base" module GirFFI # Base class for generated classes representing boxed types. class BoxedBase < StructLikeBase def self.make_finalizer(struct) proc { finalize(struct) } end def self.copy(val) ptr = GObject.boxed_copy(gtype, val) wrap(ptr) end class << self protected def finalize(struct) struct.owned? or return struct.owned = nil GObject.boxed_free gtype, struct.to_ptr end end private def store_pointer(*) super make_finalizer end def make_finalizer ObjectSpace.define_finalizer self, self.class.make_finalizer(struct) end end end
Version data entries
8 entries across 8 versions & 1 rubygems