メモリその2

前回書いたメモリ確保のバグだけども対策が出来たっぽい。


以下のプログラムをmainの先頭に置くことでメモリ後部(09a40000以降)を使えないように出来る。

void *pmem,*pmem0,*pmem1,*pmem2;
pmem = malloc(0x10000);
int memsize = 0x09a40000 - (int)pmem;
free(pmem);
int memsize2 = 0;
pmem = malloc(memsize -16);
pmem1 = pmem;
int memsize3 = 0x09f69fff-0x09a40000+1;
pmem2 = malloc(memsize3 -16);
free(pmem);

テストしてたコードをそのまま持ってきたので怪しい所があるけど、気にしてはいけない。
今の所FW2.0+eLoaderでしか動作確認していないので他の環境でも動くのか気になる所。
まあ、mallocで確保しているだけなので弊害は少ないと思うけど。


Jpegに関してはメモリ確保が安定して行えるようになったので以前より割りと読み込めるようになった。
展開後の画像を置くメモリは量が解っているので足りなければ縮小とか出来るのだけれども、Jpeglibの内部で確保している展開用のメモリはファイルによっても量がまちまちで困る。
ファイルによっては多大なメモリを使うみたいで展開後のサイズを縮小しても入りきらない場合もあったりする。
Jpeglibに省メモリ用のオプションとかないのかなぁ・・・。