com php-src: Fix mbstring overloads in zts: ext/mbstring/mbstring.c

From: Date: Tue, 26 Aug 2014 23:26:57 +0000
Subject: com php-src: Fix mbstring overloads in zts: ext/mbstring/mbstring.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-81143@lists.php.net to get a copy of this message
Commit: f719b9ddcf68815b0883a4e67e4d99c5fbd1f9cd Author: Nikita Popov <nikic@php.net> Wed, 27 Aug 2014 00:53:24 +0200 Parents: 2788a718aa55f8f75e50009a8389b6a0a3796497 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=f719b9ddcf68815b0883a4e67e4d99c5fbd1f9cd Log: Fix mbstring overloads in zts Changed paths: M ext/mbstring/mbstring.c Diff: diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index db8f352..c82e4f4 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -1622,9 +1622,8 @@ PHP_RINIT_FUNCTION(mbstring) CG(compiler_options) |= ZEND_COMPILE_NO_BUILTIN_STRLEN; while (p->type > 0) { if ((MBSTRG(func_overload) & p->type) == p->type && - (orig = zend_hash_str_find_ptr(EG(function_table), p->save_func, - strlen(p->save_func))) == NULL) { - + !zend_hash_str_exists(EG(function_table), p->save_func, strlen(p->save_func)) + ) { func = zend_hash_str_find_ptr(EG(function_table), p->ovld_func, strlen(p->ovld_func)); if ((orig = zend_hash_str_find_ptr(EG(function_table), p->orig_func, strlen(p->orig_func))) == NULL) { @@ -1633,11 +1632,14 @@ PHP_RINIT_FUNCTION(mbstring) } else { ZEND_ASSERT(orig->type == ZEND_INTERNAL_FUNCTION); zend_hash_str_add_mem(EG(function_table), p->save_func, strlen(p->save_func), orig, sizeof(zend_internal_function)); + function_add_ref(orig); if (zend_hash_str_update_mem(EG(function_table), p->orig_func, strlen(p->orig_func), func, sizeof(zend_internal_function)) == NULL) { php_error_docref("ref.mbstring" TSRMLS_CC, E_WARNING, "mbstring couldn't replace function %s.", p->orig_func); return FAILURE; } + + function_add_ref(func); } } p++; @@ -1684,6 +1686,7 @@ PHP_RSHUTDOWN_FUNCTION(mbstring) (orig = zend_hash_str_find_ptr(EG(function_table), p->save_func, strlen(p->save_func)))) { zend_hash_str_update_mem(EG(function_table), p->orig_func, strlen(p->orig_func), orig, sizeof(zend_internal_function)); + function_add_ref(orig); zend_hash_str_del(EG(function_table), p->save_func, strlen(p->save_func)); } p++;

« previous php.cvs (#81143) next »