できたぞ、っていうかタイミング分かった


動的に確保された領域開放のタイミングについて、悩みまくったがブログに記事を書き散らしながら頭を整理したら一気に解決した。さすがやな。


アプリケーションの終了、フレームの終了、エクステが破壊された時、この三つのトリガを別々に検出するのかと思っていたが、考え方はもっとシンプルで良かった。っていうかこの中に正解が書かれている。

考え方

「エクステは実行中でも常にユーザ命令によって破棄される可能性があるモノ」という前提で作る必要がある。

そしてフレームやアプリの終了命令が発生した場合にもエクステは破棄されるのだから、つまり「エクステが破壊されるタイミング」を重視してこの時に動的確保されたメモリの開放も行えば良いということになる。

あるいはエクステの標準関数からアプリ終了のトリガを検出した時にはたぶんエクステの破棄は終わってるのだと思う。

フレームが終了するときも同様で、結局エクステは事前に破棄されるのだからエクステ開発者はエクステが破棄されるタイミングだけを自分で管理すれば良い。

仮に free しなくともプロセスが終了するときに開放されるはずだけど free できないと気持ちが悪い。そしてこれで汎用的な仕様で安心して作れそう。

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です