andrey Tue Jun 16 07:53:03 2009 UTC Modified files: /php-src/ext/mysqlnd mysqlnd_palloc.c Log: Use Zend's allocator instead of libc's and also don't try to work on zvals that are NULLs. http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/mysqlnd_palloc.c?r1=1.19&r2=1.20&diff_format=u Index: php-src/ext/mysqlnd/mysqlnd_palloc.c diff -u php-src/ext/mysqlnd/mysqlnd_palloc.c:1.19 php-src/ext/mysqlnd/mysqlnd_palloc.c:1.20 --- php-src/ext/mysqlnd/mysqlnd_palloc.c:1.19 Thu Jun 11 08:31:10 2009 +++ php-src/ext/mysqlnd/mysqlnd_palloc.c Tue Jun 16 07:53:03 2009 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mysqlnd_palloc.c,v 1.19 2009/06/11 08:31:10 andrey Exp $ */ +/* $Id: mysqlnd_palloc.c,v 1.20 2009/06/16 07:53:03 andrey Exp $ */ #include "php.h" #include "mysqlnd.h" #include "mysqlnd_priv.h" @@ -139,7 +139,7 @@ /* {{{ _mysqlnd_palloc_init_thd_cache */ MYSQLND_THD_ZVAL_PCACHE* mysqlnd_palloc_init_thd_cache(MYSQLND_ZVAL_PCACHE * const cache TSRMLS_DC) { - MYSQLND_THD_ZVAL_PCACHE *ret = calloc(1, sizeof(MYSQLND_THD_ZVAL_PCACHE)); + MYSQLND_THD_ZVAL_PCACHE *ret = mnd_ecalloc(1, sizeof(MYSQLND_THD_ZVAL_PCACHE)); DBG_ENTER("_mysqlnd_palloc_init_thd_cache"); DBG_INF_FMT("ret = %p", ret); @@ -161,7 +161,7 @@ ret->references = 1; /* 1. Initialize the GC list */ - ret->gc_list.ptr_line = calloc(cache->max_items, sizeof(mysqlnd_zval *)); + ret->gc_list.ptr_line = mnd_ecalloc(cache->max_items, sizeof(mysqlnd_zval *)); /* Backward and forward looping is possible */ ret->gc_list.last_added = ret->gc_list.ptr_line; ret->gc_list.canary1 = (void*)0xCAFE; @@ -233,8 +233,8 @@ UNLOCK_PCACHE(global_cache); } - mnd_free(thd_cache->gc_list.ptr_line); - mnd_free(thd_cache); + mnd_efree(thd_cache->gc_list.ptr_line); + mnd_efree(thd_cache); DBG_VOID_RETURN; } @@ -413,6 +413,9 @@ { MYSQLND_ZVAL_PCACHE *cache; DBG_ENTER("mysqlnd_palloc_zval_ptr_dtor"); + if (!*zv) { + DBG_VOID_RETURN; + } if (thd_cache) { DBG_INF_FMT("cache=%p parent_block=%p last_in_block=%p *zv=%p refc=%d type=%d ", thd_cache,
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php