Sha256: 65f4ef95e72f3fb200a0aed6de2e28df23112db8798149e6dda17fd840854d05

Contents?: true

Size: 652 Bytes

Versions: 1

Compression:

Stored size: 652 Bytes

Contents

class Plaything
  module OpenAL
    class ManagedPointer < FFI::AutoPointer
      class << self
        def release(pointer)
          if pointer.null?
            warn "Trying to release NULL #{name}."
          elsif block_given?
            yield pointer
          else
            warn "No releaser for #{name}."
          end
        rescue => e
          warn "release for #{name} failed: #{e.message}."
        end

        def allocate(*args, &block)
          pointer = FFI::MemoryPointer.new(*args)
          yield pointer
          pointer.autorelease = false
          new(FFI::Pointer.new(pointer))
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
plaything-1.0.0 lib/plaything/support/managed_pointer.rb