class RbSDL2::RefCountPointer

Public Class Methods

entity_class() click to toggle source
# File lib/rb_sdl2/ref_count_pointer.rb, line 4
def entity_class
  raise NotImplementedError
end
to_ptr(ptr) click to toggle source
# File lib/rb_sdl2/ref_count_pointer.rb, line 8
def to_ptr(ptr)
  raise ArgumentError, 'Invalid pointer, ptr is NULL' if ptr.null?
  # refcount の増加を AutoPointer 化する前に成功させる必要がある。
  # AutoPointer になった後に失敗すると、GC に回収されたとき refcount が実際の参照数より少なくなる。
  entity_class.new(ptr)[:refcount] += 1
  new(ptr)
end

Public Instance Methods

refcount(= self.class.entity_class.new(self)[:refcount]) click to toggle source

for debug

# File lib/rb_sdl2/ref_count_pointer.rb, line 18
  def refcount = self.class.entity_class.new(self)[:refcount]
end