- 700 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 11:05:57 ]
- >>696
記述自体はそれであってるけど、sq_setreleasehook するのは sq_setinstanceup が成功したのを確認した後でしょう。 終了時あぼんは、そりゃどっかプログラムが悪いんだろうとしか言えない。 その b->getGraphics() でとった Graphics が勝手に独自に解放されて大丈夫な構造で作られて ないのなら setreleasehook してはダメ、って、&つけてるってことはメンバ変数か。それはダメかも C++で管理を単純化するために、親が責任もって解放してるので、子オブジェクトは ポインタ参照したあともそのまま放置したのでOK、という書き方は実際よくあって、 そういったものをsquirrel に移すときは、子オブジェクトにポインタ渡してオブジェクトとして 作るけど sq_setreleasehook はしないという書き方にする必要がもちろんある。 親が先に死んだ状態で子をさわるとポインタ腐ってるのでクラッシュするけど それはそういうもの。squirrel は機構は提供してくれるけど、自動で判断してくれるわけでは ないから、あくまで C++ 的に破綻しないように注意して書く必要がある。 そういうのいやならオブジェクトを全体的にリファレンスカウント 方式とかで管理するようにするしかない。 そして循環参照トラップにはまるw
|

|