[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:4249] allocator_reserve?



>>>>> [meadow-develop : No.4249] にて
>>>>> "himi" = MIYASHITA Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxx> さんは書きました:

himi> そろそろ、まじめに見直さんといかんなぁと思いながら、mw32font.cを
himi> 眺めていたんですが、この、*_allocator_reserveとかいうのは何の為に
himi> 導入されたんでしょう? これって必要でしょうか?

これは、Windows9X でのリソースリーク対策の一環として私が導入した
ものです。

xmalloc() でメモリを確保した直後に、高い確率で、そのメモリを 
xfree() している部分があったので、xfree() せずに、後で使いまわし
したほうが効率がいいと思って導入しました。

*_allocator_reserve() で、使いまわせるメモリがあればそれを渡し、
 なければ xmalloc() します。
*_allocator_cancel() では、reserve したメモリを、次に使いまわせる
 ように戻します。

Windows9X では free()/malloc() でユーザリソースを圧迫しているのか
もしれないという疑いを持っていたので、このようにしました。でも、
あんまり、関係なかったようなので、コードを戻してもらっても構いま
せん。

himi> 今はやっていませんが、LFを外部から開放するように変更したとき、
himi> このままでは、memory leakが発生するように見えます。

これは大丈夫だと思います。
ただし、*_allocator_reserve() と *_allocator_cancel() を対で使う
ことを前提としています。この前提が崩れればリークします。

--
三好 雅則 mailto:miyoshi@xxxxxxxxxxxxxxxx
          http://www.boreas.dti.ne.jp/~miyoshi/ (Meadow2 のページ始めました)