summaryrefslogtreecommitdiff
path: root/ext/mysqli/mysqli_api.c
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2007-11-09 10:56:28 +0000
committerAndrey Hristov <andrey@php.net>2007-11-09 10:56:28 +0000
commit6f63004f1a1e7b8779ba8737ed74f0d3596236a0 (patch)
tree595413ca1dd8a22eb8f3363df3688177bba9ea30 /ext/mysqli/mysqli_api.c
parente6dff0caa47efee905207d4a2b2df9f24ae717d9 (diff)
downloadphp-git-6f63004f1a1e7b8779ba8737ed74f0d3596236a0.tar.gz
Fix crash with pconnect
Diffstat (limited to 'ext/mysqli/mysqli_api.c')
-rw-r--r--ext/mysqli/mysqli_api.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c
index b4948acdbb..d857706a4e 100644
--- a/ext/mysqli/mysqli_api.c
+++ b/ext/mysqli/mysqli_api.c
@@ -563,13 +563,8 @@ PHP_FUNCTION(mysqli_close)
if (zend_hash_find(&EG(persistent_list), mysql->hash_key, strlen(mysql->hash_key) + 1, (void **)&le) == SUCCESS) {
if (Z_TYPE_P(le) == php_le_pmysqli()) {
mysqli_plist_entry *plist = (mysqli_plist_entry *) le->ptr;
- dtor_func_t pDestructor = plist->used_links.pDestructor;
+ zend_ptr_stack_push(&plist->free_links, mysql->mysql);
- plist->used_links.pDestructor = NULL; /* Don't call pDestructor now */
- zend_hash_index_del(&plist->used_links, mysql->hash_index);
- plist->used_links.pDestructor = pDestructor; /* Restore the destructor */
-
- zend_hash_next_index_insert(&plist->free_links, &mysql->mysql, sizeof(MYSQL *), NULL);
MyG(num_links)--;
MyG(num_active_persistent)--;
MyG(num_inactive_persistent)++;