2009-11-23

flash.display.BitmapDataのメモリリーク?

タスクマネージャでスタンドアロンのFlashPlayerが猛烈にメモリを食っていることが分かって、長々と調べた結果、どうやら自分で作ったBitmapDataインスタンスのdispose()を呼んでいないことが原因らしい。えー、何で何で? たぶんどこからも参照されていないと思うんだけど。ローカルフレームからの参照が残ってるのかなぁ。そんなわけないよな、new BitmapDataして変数に入れただけでは残らないし。

ん? new Bitmap(new BitmapData(640, 480, false, 0)); と1行書いただけでダメみたい。もちろん作ったオブジェクトの参照は変数にも入れていないし、addChildもしていない。なんか内部的な理由によるものなんだろうか……。

Loaderで読んだBitmapやBitmapDataはdisposeしなくてもちゃんと解放されてるみたいなんだけどなぁ。