Size: a a a

2019 December 28

S

Snusmumriken in pro.lua
lua_ref?
источник

I

Igor725 in pro.lua
В которой юзердате соответствует лайтюзердата
источник

I

Igor725 in pro.lua
Лайт - это ключ, а обынчая бзердата - значение
источник

S

Snusmumriken in pro.lua
Да, мне с этим проще потому что у  меня есть строковые ID, так-то придётся делать что-то аналогичное.
источник

I

Igor725 in pro.lua
У меня просто всё, что некуда запихнуть в табличке LUA_REGISTRYINDEX лежит
источник

S

Snusmumriken in pro.lua
Ну так примерно оно и происходит. Табличка невидимая и имеет доступ только по ссылке с сишной стороны (или если сишка её вернёт), живёт пока не будет совершён lua_unref.
источник

I

Igor725 in pro.lua
Ага
источник

S

Snusmumriken in pro.lua
Меня на эту тему успело выморозить то, что если заменить таблицу, например, package — луа всё равно будет лезть в оригинал, потому что там такой же доступ по ссылке.
источник

I

Igor725 in pro.lua
Есть такое
источник

S

Snusmumriken in pro.lua
Я хотел мутить "раздельные" стейты в корутинах, типа в каждой корутине по своему набору библиотек, свои пути загрузки либ, свои переменные и т.д.
источник

I

Igor725 in pro.lua
Ну мне особо не приходилось подменять стандартные таблички
источник

I

Igor725 in pro.lua
Я только в них меняю/удаляю значения
источник

I

Igor725 in pro.lua
Ага, убирает из стека значение ключа
источник

I

Igor725 in pro.lua
Похоже не избавиться от двух пушей лайтовой даты
источник

I

Igor725 in pro.lua
Если только у lua_gettable нет альтернативы без этой особенности
источник

I

Igor725 in pro.lua
Можно разве что lua_gettable заменить на rawget
источник

I

Igor725 in pro.lua
Чтобы не пытался метаметоды выполнить
источник

I

Igor725 in pro.lua
Всё равно лишнее действие
источник

I

Igor725 in pro.lua
Snusmumriken
Ну так примерно оно и происходит. Табличка невидимая и имеет доступ только по ссылке с сишной стороны (или если сишка её вернёт), живёт пока не будет совершён lua_unref.
Ну вообще к регистру виртуальной машины луёвой можно получить доступ ещё и через debug.getregistry(), так что не такая уж она и невидимая
источник

I

Igor725 in pro.lua
Иногда со стороны lua и проверяю содержимое таблички этой, если лень рекомпилить библу с отображением содержимого стека
источник