diff options
| author | pp <pp@455248ca-bdda-0310-9134-f4ebb693071a> | 2005-07-13 16:01:56 +0000 |
|---|---|---|
| committer | pp <pp@455248ca-bdda-0310-9134-f4ebb693071a> | 2005-07-13 16:01:56 +0000 |
| commit | 479ae184414ae235d2dca756f651d7d5929f1f33 (patch) | |
| tree | 03e3860d397e41cbee8900ed5971a7b7a1a5d620 | |
| parent | dd9ae8593096d54180956c13b1f293bc3d546634 (diff) | |
- fixed resource freeing
git-svn-id: https://siedziba.pl:790/svn/repos/php-imlib/trunk@209 455248ca-bdda-0310-9134-f4ebb693071a
| -rw-r--r-- | php_imlib.c | 13 |
1 files changed, 10 insertions, 3 deletions
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); } /* }}} */ |
