view lua/luadyncall/test/test_smartptr.lua @ 61:c5a69c454963

- allow use of 'None' with 'Z' - bumped version to 1.4 (be in sync current dyncall version)
author Tassilo Philipp
date Mon, 03 Apr 2023 19:06:07 +0200
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