Я работаю над переносом libcurl в luajit ffi.Мой финализатор не получил вызов.
local ffi = require("ffi")
ffi.cdef [[
typedef struct{} CURL;
CURL * curl_easy_init();
void curl_easy_cleanup(CURL *);
]]
local CURL_lib = ffi.load("../lib/libcurl.so")
local CURL_CTX
local CURL_CTX_mt = {
__gc = function() print "finalizing"; CURL_lib.curl_easy_cleanup(CURL_CTX); end
}
ffi.metatype("CURL", CURL_CTX_mt)
CURL_CTX = ffi.new("CURL[1]")
CURL_CTX = CURL_lib.curl_easy_init();
print "done"
Что мне здесь не хватает?: D
Кстати, CURL определяется как typedef void CURL;
Я уверен, что способ, которым я пытаюсь это сделать, не достаточно чист.Любой совет ?
Эврика!: self answer - все еще интересуются комментариями, если есть какие-либо явные проблемы.