Commit: acc24d1f9eb1f5dddc89123baca14e70be84be20 Author: Andrey Hristov <and...@php.net> Tue, 15 Jan 2013 12:19:52 +0100 Parents: d377a266b27e0d0b2ac088333564f8d1f05cceb8 Branches: PHP-5.5 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=acc24d1f9eb1f5dddc89123baca14e70be84be20 Log: Use two dtors thus allow allocation based on the alloc model of the connection. Changed paths: M ext/date/php_date.c M ext/mysqlnd/mysqlnd.c Diff: diff --git a/ext/date/php_date.c b/ext/date/php_date.c index cc83130..1e1e239 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -2071,7 +2071,7 @@ static zval* date_clone_immutable(zval *object) zval *new_object; ALLOC_ZVAL(new_object); - Z_OBJVAL_P(new_object) = date_object_clone_date(object); +// Z_OBJVAL_P(new_object) = date_object_clone_date(object); Z_SET_REFCOUNT_P(new_object, 1); Z_SET_ISREF_P(new_object); Z_TYPE_P(new_object) = IS_OBJECT; diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c index f5b1063..96c420d 100644 --- a/ext/mysqlnd/mysqlnd.c +++ b/ext/mysqlnd/mysqlnd.c @@ -2418,14 +2418,28 @@ end: /* }}} */ -/* {{{ connect_attr_item_dtor */ +/* {{{ connect_attr_item_edtor */ static void -connect_attr_item_dtor(void * pDest) +connect_attr_item_edtor(void * pDest) { #ifdef ZTS TSRMLS_FETCH(); #endif - DBG_ENTER("connect_attr_item_dtor"); + DBG_ENTER("connect_attr_item_edtor"); + mnd_efree(*(char **) pDest); + DBG_VOID_RETURN; +} +/* }}} */ + + +/* {{{ connect_attr_item_pdtor */ +static void +connect_attr_item_pdtor(void * pDest) +{ +#ifdef ZTS + TSRMLS_FETCH(); +#endif + DBG_ENTER("connect_attr_item_pdtor"); mnd_pefree(*(char **) pDest, 1); DBG_VOID_RETURN; } @@ -2456,11 +2470,11 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option_2d)(MYSQLND_CONN_DATA * cons if (!conn->options->connect_attr) { goto oom; } - zend_hash_init(conn->options->connect_attr, 0, NULL, connect_attr_item_dtor, conn->persistent); + zend_hash_init(conn->options->connect_attr, 0, NULL, conn->persistent? connect_attr_item_pdtor:connect_attr_item_edtor, conn->persistent); } DBG_INF_FMT("Adding [%s][%s]", key, value); { - const char * copyv = mnd_pestrdup(value, 1); + const char * copyv = mnd_pestrdup(value, conn->persistent); if (!copyv) { goto oom; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php