mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Make this function static, as it is used only in this file.
Add additional comment about how it works.
This commit is contained in:
parent
6fc06f265e
commit
8409cb44b2
1 changed files with 8 additions and 2 deletions
|
@ -86,12 +86,11 @@ MYSQLND_METHOD(mysqlnd_res, initialize_result_set_rest)(MYSQLND_RES * const resu
|
|||
/* }}} */
|
||||
|
||||
|
||||
|
||||
/* {{{ mysqlnd_palloc_zval_ptr_dtor */
|
||||
static
|
||||
void mysqlnd_palloc_zval_ptr_dtor(zval **zv, enum_mysqlnd_res_type type, zend_bool * copy_ctor_called TSRMLS_DC)
|
||||
{
|
||||
DBG_ENTER("mysqlnd_palloc_zval_ptr_dtor");
|
||||
*copy_ctor_called = FALSE;
|
||||
|
||||
/*
|
||||
This zval is not from the cache block.
|
||||
|
@ -99,6 +98,7 @@ void mysqlnd_palloc_zval_ptr_dtor(zval **zv, enum_mysqlnd_res_type type, zend_bo
|
|||
because the zvals from the cache are owned by it.
|
||||
*/
|
||||
if (type == MYSQLND_RES_PS_BUF || type == MYSQLND_RES_PS_UNBUF) {
|
||||
*copy_ctor_called = FALSE;
|
||||
; /* do nothing, zval_ptr_dtor will do the job*/
|
||||
} else if (Z_REFCOUNT_PP(zv) > 1) {
|
||||
/*
|
||||
|
@ -120,6 +120,12 @@ void mysqlnd_palloc_zval_ptr_dtor(zval **zv, enum_mysqlnd_res_type type, zend_bo
|
|||
}
|
||||
*copy_ctor_called = TRUE;
|
||||
} else {
|
||||
/*
|
||||
noone but us point to this, so we can safely ZVAL_NULL the zval,
|
||||
so Zend does not try to free what the zval points to - which is
|
||||
in result set buffers
|
||||
*/
|
||||
*copy_ctor_called = FALSE;
|
||||
if (Z_TYPE_PP(zv) == IS_STRING) {
|
||||
ZVAL_NULL(*zv);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue