質問

これはLuaのオブジェクトへの保留リファレンスにLuaのユーザデータの一部は可能ですか? (テーブル、又はユーザーデータの別の部分、気に入りましたか?)。基本的に、私が知りたいことはあります:

私は、GCの実行は、ユーザデータが言うことができるようにtahtにユーザデータの一部を作成することができます:「!。ねえ、私はこれらの他のオブジェクトへの参照を保持しています、同様にそれらをマーク」

EDIT: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;
}

[すなわち。バーテックス&クォータニオンは、ユーザデータ]の本当に大きな枚あるとします。

その後、私の必要性 -

さて、私はユーザデータの頂点を取りLuaのユーザー機能、およびユーザデータクォータニオンを持っており、ユーザデータバーを(私はスペースを節約したいので、私は、ユーザデータはFooを望んでいない)を作成したとし何とかユーザデータのための頂点* /クォータニオン* GC-EDではないと。

役に立ちましたか?

解決

   Luaのオブジェクトへの保留リファレンスへのluaユーザデータの一部のためにそれは可能ですか?

番号のユーザーデータは、別のLUAオブジェクトへのポインタを保持することはできません。あなたが生きている別のLuaのオブジェクトを保持するためにユーザデータを使用したい場合は、 に弱いテーブルを使用してそれをしなければなりません。それをを行う方法についてセクションとしてロベルトの著書ます。

他のヒント

私はLUAを使って何をしたので、

しばらくして。私は、参照されたデータは、Luaのマシンによって作成された場合、それは自分自身にそれをクリーンアップすると思います。そうしないと、あなたのCコードでGCコールバックを待って、メモリを自分で解放する必要があります。

scroll top