view lua/luadyncall/test/test_smartptr.lua @ 54:918dab7a6606

- added callback support (comes with some bigger refactoring) - allow CPython's Py{CObject,Capsule} to be used as 'p'ointers
author Tassilo Philipp
date Tue, 02 Feb 2021 20:42:02 +0100
parents 0cfcc391201f
children
line wrap: on
line source

require "smartptr"

-- test tolightuserdata

x = smartptr.tolightuserdata(0xCAFEbabe)
print(x)

-- test newsmartptr and finalizer

function finalizer(x)
  print("finalizer:"..tostring(x) )
end

y = smartptr.new(x, finalizer)
print("dump smartptr : ".. tostring(y) )
print("dump address  : " .. tostring(y()))
y = nil -- should print FINALIZER
collectgarbage("collect")
-- test setfinalizer

y = smartptr.new( smartptr.tolightuserdata(0xdeadc0de), finalizer)
print("smartptr : ".. tostring(y) )
print("address  : " .. tostring(y()))
function newfinalizer(x)
  print("newfinalizer:"..tostring(x))
end
smartptr.setfinalizer(y, newfinalizer)
y = nil