From 479ae184414ae235d2dca756f651d7d5929f1f33 Mon Sep 17 00:00:00 2001 From: pp Date: Wed, 13 Jul 2005 16:01:56 +0000 Subject: - fixed resource freeing git-svn-id: https://siedziba.pl:790/svn/repos/php-imlib/trunk@209 455248ca-bdda-0310-9134-f4ebb693071a --- php_imlib.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'php_imlib.c') diff --git a/php_imlib.c b/php_imlib.c index 07a3e0a..0d437d9 100644 --- a/php_imlib.c +++ b/php_imlib.c @@ -212,7 +212,8 @@ PHP_INI_MH(OnUpdateFontCacheSize) static void _php_imlib_free_cm(zend_rsrc_list_entry *rsrc TSRMLS_DC) { - imlib_context_set_color_modifier(rsrc->ptr); + imlib_context_set_color_modifier(((PHP_Imlib_Color_Modifier)rsrc->ptr)->cm); + efree(rsrc->ptr); imlib_free_color_modifier(); } @@ -230,7 +231,8 @@ static void _php_imlib_free_cr(zend_rsrc_list_entry *rsrc TSRMLS_DC) static void _php_imlib_free_font(zend_rsrc_list_entry *rsrc TSRMLS_DC) { - imlib_context_set_font(rsrc->ptr); + imlib_context_set_font(((PHP_Imlib_Font)rsrc->ptr)->font); + efree(rsrc->ptr); imlib_free_font(); } @@ -1106,8 +1108,13 @@ PHP_FUNCTION(imlib_create_color_modifier) cm->cm = imlib_create_color_modifier(); cm->modified=0; cm->valid=0; + + if (!cm->cm) { + efree(cm); + RETURN_FALSE; + } - if (cm->cm) ZEND_REGISTER_RESOURCE(return_value, cm, le_imlib_cm); + ZEND_REGISTER_RESOURCE(return_value, cm, le_imlib_cm); } /* }}} */ -- cgit v1.2.3