Почему наследник BitmapData не диспозит себя до конца?
Вывод этот я сделал из следующего теста, итак:

Код AS1/AS2:
public class DisposeTest extends Sprite
{
private var memory:int;
public function DisposeTest()
{
memory = System.privateMemory;
var bd:BitmapData = new BitmapData(2000,2000,true,0x0);
trackMemory(); // 16003072
bd.dispose();
bd = null;
trackMemory(); // -16003072
}
private function trackMemory():void
{
var currentMemory:int = System.privateMemory;
trace (currentMemory - memory);
memory = currentMemory;
}
}
Пока всё работает как часы, но если заменить битмепдату на наследника, например такого

Код AS1/AS2:
public class BitmapDataExtended extends BitmapData
{
public function BitmapDataExtended(width:int, height:int, transparent:Boolean, fillColor:uint)
{
super(width, height, transparent, fillColor);
}
}
Тест будет вести себя по другому:

Код AS1/AS2:
public function DisposeTest()
{
memory = System.privateMemory;
var bd:BitmapData = new BitmapDataExtended(2000,2000,true,0x0);
trackMemory(); // 16072704
bd.dispose();
bd = null;
trackMemory(); // -16003072
}
То есть во втором случае, памяти выделяется больше, а освобождается как в первый раз.
Хотелось бы понять почему так происходит, и как этого избежать.