[PHP-users 18169]Re: イメージ出力によるメモリ消費

Youichi Iwakiri yiwakiri @ st.rim.or.jp
2003年 10月 1日 (水) 18:23:06 JST


いわきりです

Seiji Masugata wrote in <200310010817.h918HHDM069382 @ azusa.digicom.dnp.co.jp> :
>PHP4.3.4RC1のQA最中ですので、バグだったら直してもらえそうな
>予感。。。

gd.cを見ましたが、imagedestroy()では、php側のリソースは解放しています
が、ilbgd(gdImageCreate*)で確保した領域を開放していないようです。

以下のpatchで直るとは思いますが、

---------- ここから
--- gd/gd.c     Fri Jun 20 00:48:07 2003
+++ gd_patch/gd.c       Wed Oct  1 18:13:41 2003
@@ -1786,6 +1786,7 @@

        ZEND_FETCH_RESOURCE(im, gdImagePtr, IM, -1, "Image", le_gd);

+       gdImageDestroy(im);
        zend_list_delete(Z_LVAL_PP(IM));

        RETURN_TRUE;

---------- ここまで

PHP_MINIT_FUNCTION(gd)
{
    le_gd = zend_register_list_destructors_ex(php_free_gd_image, NULL, "gd", module_number);

モジュールのイニシャライズ時にデストラクタとして、
gdImageDestroy()を呼ぶphp_free_gd_image()を登録しているんですが、
これはモジュールシャットダウン時だけでリクエストシャットダウン時は
呼ばれないんでしたっけ?

-- 
Youichi Iwakiri



PHP-users メーリングリストの案内