The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"lua, __gc"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"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;
}

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. "lua, __gc"  +/
Сообщение от erthink (ok), 26-Июл-19, 01:47 
> создаю метатаблицу, переопределяю метод __gc

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "lua, __gc"  +/
Сообщение от erthink (ok), 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.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру