URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10274
[ Назад ]

Исходное сообщение
"lua, __gc"

Отправлено test , 25-Июл-19 01:09 
создаю метатаблицу, переопределяю метод __gc
он вызывается норм, далее пытаюсь оттуда достучаться до полей метатаблицы но в Lua_State только одно значение boolean

int test_destroy(lua_State* L)
{
  int top = lua_gettop(L); // 1
  int type = lua_type(L, top); // 7
  return 0;
}

куда чего стучаться?!


Содержание

Сообщения в этом обсуждении
"lua, __gc"
Отправлено erthink , 26-Июл-19 01:47 
> создаю метатаблицу, переопределяю метод __gc

...
> куда чего стучаться?!

https://stackoverflow.com/questions/3078440/destructors-in-lua


"lua, __gc"
Отправлено test , 26-Июл-19 13:21 
>> создаю метатаблицу, переопределяю метод __gc
> ...
>> куда чего стучаться?!
> https://stackoverflow.com/questions/3078440/destructors-in-lua

ок, с этим понятно, разобрался

другой вопрос задам, у меня в коде создан объект, в Lua с ним связана таблица через userdata, в объекте храню lua_State*, как потом мне лучше найти мою таблицу? хранить какой то уникальный идентификатор?


"lua, __gc"
Отправлено test , 26-Июл-19 13:25 
>>> создаю метатаблицу, переопределяю метод __gc
>> ...
>>> куда чего стучаться?!
>> https://stackoverflow.com/questions/3078440/destructors-in-lua
> ок, с этим понятно, разобрался
> другой вопрос задам, у меня в коде создан объект, в Lua с
> ним связана таблица через userdata, в объекте храню lua_State*, как потом
> мне лучше найти мою таблицу? хранить какой то уникальный идентификатор?

пытаюсь несколько виртуальных функций завернуть в LUA скрипты и оценить скорость, и просто для себя разобраться)


"lua, __gc"
Отправлено erthink , 27-Июл-19 16:59 
>>>> создаю метатаблицу, переопределяю метод __gc
>>> ...
>>>> куда чего стучаться?!
>>> https://stackoverflow.com/questions/3078440/destructors-in-lua
>> ок, с этим понятно, разобрался
>> другой вопрос задам, у меня в коде создан объект, в Lua с
>> ним связана таблица через userdata, в объекте храню lua_State*, как потом
>> мне лучше найти мою таблицу? хранить какой то уникальный идентификатор?
> пытаюсь несколько виртуальных функций завернуть в LUA скрипты и оценить скорость, и
> просто для себя разобраться)

Советую посмотреть https://github.com/luabind/luabind и https://github.com/tarantool/tarantool.


"lua, __gc"
Отправлено erthink , 27-Июл-19 16:48 
> другой вопрос задам, у меня в коде создан объект, в Lua с
> ним связана таблица через userdata, в объекте храню lua_State*, как потом
> мне лучше найти мою таблицу? хранить какой то уникальный идентификатор?

Тут всё начинается с вопроса о владении, отслеживании ссылок и времени жизни объектов.
Поэтому, грубо говоря, вам не надо что-либо знать о таблице, так как таблица уже знает о вашем userdata-объекте.


"lua, __gc"
Отправлено test , 27-Июл-19 19:45 
>> другой вопрос задам, у меня в коде создан объект, в Lua с
>> ним связана таблица через userdata, в объекте храню lua_State*, как потом
>> мне лучше найти мою таблицу? хранить какой то уникальный идентификатор?
> Тут всё начинается с вопроса о владении, отслеживании ссылок и времени жизни
> объектов.
> Поэтому, грубо говоря, вам не надо что-либо знать о таблице, так как
> таблица уже знает о вашем userdata-объекте.

да, разобралс, сделал глобальную weak таблицу своих объектов, и по ней приходится искать...