/* {{{ php_clear_mysql */
void php_clear_mysql(MY_MYSQL *mysql) {
if (mysql->li_read) {
- zval_dtor(mysql->li_read);
+ zval_ptr_dtor(&(mysql->li_read));
mysql->li_read = NULL;
}
}
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql->li_read) {
- zval_dtor(mysql->li_read);
+ zval_ptr_dtor(&(mysql->li_read));
mysql->li_read = NULL;
}
}
efree(callback_name);
RETURN_FALSE;
}
- efree(callback_name);
/* save callback function */
- ALLOC_ZVAL(mysql->li_read);
- ZVAL_STRING(mysql->li_read, callback_func->value.str.val, 1);
+ if (!mysql->li_read) {
+ MAKE_STD_ZVAL(mysql->li_read);
+ } else {
+ zval_dtor(mysql->li_read);
+ }
+ ZVAL_STRING(mysql->li_read, callback_name, 0);
RETURN_TRUE;
}