Возможно ли, чтобы часть пользовательских данных Lua содержала ссылку на объект Lua? (Как таблица или другой кусок userdata?). По сути, я хочу знать:
Могу ли я создать часть пользовательских данных таким образом, чтобы при запуске gc пользовательские данные могли сказать: «Эй! Я держу ссылки на эти другие объекты, отметьте их также».
РЕДАКТИРОВАТЬ: отвечая на LHF:
Предположим, у меня есть:
struct Vertex {
double x, y, z;
}
struct Quaternion {
double w, x, y, z;
}
Теперь я могу сделать:
struct Foo {
Vertex v;
Quaternion q;
}
но предположим, что вместо этого я хочу:
struct Bar {
Vertex *v;
Quaternion *q;
}
[т.е.. предположим, что Vertex & Quaternion - это действительно большие куски пользовательских данных.
Теперь предположим, что у меня есть пользовательская функция Lua, которая принимает вершины пользовательских данных и Quaternion пользовательских данных и создает панель пользовательских данных (я не хочу Foo пользовательских данных, поскольку хочу сэкономить место) - тогда мне нужно каким-то образом пользовательские данные Vertex * / Quaternion * не должны быть gc-ed.