Size: a a a

2021 March 11

a

anton in pro.lua
Вот так получилось, не знаю насколько это хорошо
источник

a

anton in pro.lua
А вот такой вопрос, может ли lua тайно перемещать объекты в памяти? Допустим я создал С++ объект, и засунул его в луа-кучу. Вроде бы есть средство, которое позволяет вызвать деструктор, когда его съест gc, но гарантируется ли, что во время жизни расположение в куче этого объекта не будет меняться?
источник

AZ

Aydar Zarifullin in pro.lua
anton
А вот такой вопрос, может ли lua тайно перемещать объекты в памяти? Допустим я создал С++ объект, и засунул его в луа-кучу. Вроде бы есть средство, которое позволяет вызвать деструктор, когда его съест gc, но гарантируется ли, что во время жизни расположение в куче этого объекта не будет меняться?
Ты не можешь в луа закинуть С++ объект, только указатель на него, соответственно луа никуда ничего переместить не может.

Если у юзердаты есть gc метаметод то он вызовется как только в луашном стейте не останется ссылок на данную юзердату и такой вызов может стереть плюсовый объект...
источник

a

anton in pro.lua
Aydar Zarifullin
Ты не можешь в луа закинуть С++ объект, только указатель на него, соответственно луа никуда ничего переместить не может.

Если у юзердаты есть gc метаметод то он вызовется как только в луашном стейте не останется ссылок на данную юзердату и такой вызов может стереть плюсовый объект...
могу через placement new
источник

AZ

Aydar Zarifullin in pro.lua
anton
могу через placement new
И по какому адресу ты будешь свой объект писать?
источник

a

anton in pro.lua
Aydar Zarifullin
И по какому адресу ты будешь свой объект писать?
lua_newuserdata(l, sizeof(ObjType))
источник

AZ

Aydar Zarifullin in pro.lua
anton
lua_newuserdata(l, sizeof(ObjType))
Так это не плюсовый объект уже, как я выше написал луа юзердату сотрет как только ссылок не останется
источник

AZ

Aydar Zarifullin in pro.lua
anton
lua_newuserdata(l, sizeof(ObjType))
Судя по https://stackoverflow.com/questions/38718475/lifetime-of-lua-userdata-pointers сама юзердата тоже в памяти не перемещается
источник

a

anton in pro.lua
о, это очень приятно
источник
2021 March 12

LU

Lucky Uk in pro.lua
думается, вопрос о организации утечек памяти с помощью луа примыкает к этому вопросу
источник

a

anton in pro.lua
Lucky Uk
думается, вопрос о организации утечек памяти с помощью луа примыкает к этому вопросу
всё норм (вроде), деструкторы срабатывают, через минутку после того, как в луа объекты выходят из области видимости
источник

AM

Alexey Melnichuck in pro.lua
Aydar Zarifullin
Ты не можешь в луа закинуть С++ объект, только указатель на него, соответственно луа никуда ничего переместить не может.

Если у юзердаты есть gc метаметод то он вызовется как только в луашном стейте не останется ссылок на данную юзердату и такой вызов может стереть плюсовый объект...
в обще случае это зависит от сборщика мусора, но пару лет назад мне ответили что такое не планируется в стоковой Lua. Но требования такого нет и это может изменится или быть в какой-то другой реализации языка
источник
2021 March 13

S

Snusmumriken in pro.lua
Привет
источник

S

Snusmumriken in pro.lua
Это не робот, отставить пушки.
источник

S

Snusmumriken in pro.lua
А вот это — не знаю.
источник

чд

человек думающий... in pro.lua
я не робот
источник

чд

человек думающий... in pro.lua
спокойно :)
источник

S

Snusmumriken in pro.lua
Точно-точно? ))
источник

чд

человек думающий... in pro.lua
точно-точно
источник

a

anton in pro.lua
чуствую себя как в терминаторе после судного дня
источник