Sha256: b6b49d1632d059d6ed97ec978f8831b06be6974fb93639477d7598a2cd4d2d60
Contents?: true
Size: 693 Bytes
Versions: 2
Compression:
Stored size: 693 Bytes
Contents
# frozen_string_literal: true require 'gir_ffi/class_base' module GirFFI # Base class for generated classes representing boxed types. class BoxedBase < StructBase def initialize store_pointer(nil) end def self.make_finalizer(struct) proc do if struct.owned? struct.owned = nil GObject.boxed_free gtype, struct.to_ptr end end end def self.copy(val) ptr = GObject.boxed_copy(gtype, val) wrap(ptr) 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gir_ffi-0.11.1 | lib/gir_ffi/boxed_base.rb |
gir_ffi-0.11.0 | lib/gir_ffi/boxed_base.rb |