diff options
author | Andrey Hristov <andrey@php.net> | 2010-09-28 14:36:18 +0000 |
---|---|---|
committer | Andrey Hristov <andrey@php.net> | 2010-09-28 14:36:18 +0000 |
commit | 1762d63406539783f9aaf828de0753d50e49fa2d (patch) | |
tree | 826bb9bfe71425adeb901dcecaa00e6fc77f824d | |
parent | c8a717a2b19282e9a9a81b6fed976188256186ec (diff) | |
download | php-git-1762d63406539783f9aaf828de0753d50e49fa2d.tar.gz |
add another hook, maybe the last one, for MYSQLND_STMT, which
was missed before
-rw-r--r-- | ext/mysqlnd/mysqlnd_ps.c | 15 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_structs.h | 3 |
2 files changed, 10 insertions, 8 deletions
diff --git a/ext/mysqlnd/mysqlnd_ps.c b/ext/mysqlnd/mysqlnd_ps.c index 6ab773c4de..c06d1b4882 100644 --- a/ext/mysqlnd/mysqlnd_ps.c +++ b/ext/mysqlnd/mysqlnd_ps.c @@ -52,8 +52,6 @@ enum_func_status mysqlnd_fetch_stmt_row_cursor(MYSQLND_RES *result, void *param, static void mysqlnd_stmt_separate_result_bind(MYSQLND_STMT * const stmt TSRMLS_DC); static void mysqlnd_stmt_separate_one_result_bind(MYSQLND_STMT * const stmt, unsigned int param_no TSRMLS_DC); -static void mysqlnd_internal_free_stmt_content(MYSQLND_STMT * const stmt TSRMLS_DC); - /* {{{ mysqlnd_stmt::store_result */ static MYSQLND_RES * MYSQLND_METHOD(mysqlnd_stmt, store_result)(MYSQLND_STMT * const s TSRMLS_DC) @@ -228,7 +226,7 @@ MYSQLND_METHOD(mysqlnd_stmt, next_result)(MYSQLND_STMT * s TSRMLS_DC) } /* Free space for next result */ - mysqlnd_internal_free_stmt_content(s TSRMLS_CC); + s->m->free_stmt_content(s TSRMLS_CC); DBG_RETURN(s->m->parse_execute_response(s TSRMLS_CC)); } @@ -2062,12 +2060,12 @@ mysqlnd_stmt_separate_one_result_bind(MYSQLND_STMT * const s, unsigned int param /* }}} */ -/* {{{ mysqlnd_internal_free_stmt_content */ +/* {{{ mysqlnd_stmt::free_stmt_content */ static void -mysqlnd_internal_free_stmt_content(MYSQLND_STMT * const s TSRMLS_DC) +MYSQLND_METHOD(mysqlnd_stmt, free_stmt_content)(MYSQLND_STMT * const s TSRMLS_DC) { MYSQLND_STMT_DATA * stmt = s? s->data:NULL; - DBG_ENTER("mysqlnd_internal_free_stmt_content"); + DBG_ENTER("mysqlnd_stmt::free_stmt_content"); if (!stmt) { DBG_VOID_RETURN; } @@ -2186,7 +2184,7 @@ MYSQLND_METHOD_PRIVATE(mysqlnd_stmt, net_close)(MYSQLND_STMT * const s, zend_boo stmt->execute_cmd_buffer.buffer = NULL; } - mysqlnd_internal_free_stmt_content(s TSRMLS_CC); + s->m->free_stmt_content(s TSRMLS_CC); if (stmt->conn) { stmt->conn->m->free_reference(stmt->conn TSRMLS_CC); @@ -2324,7 +2322,8 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_stmt) MYSQLND_METHOD(mysqlnd_stmt, free_result_bind), MYSQLND_METHOD(mysqlnd_stmt, server_status), mysqlnd_stmt_execute_generate_request, - mysqlnd_stmt_execute_parse_response + mysqlnd_stmt_execute_parse_response, + MYSQLND_METHOD(mysqlnd_stmt, free_stmt_content) MYSQLND_CLASS_METHODS_END; diff --git a/ext/mysqlnd/mysqlnd_structs.h b/ext/mysqlnd/mysqlnd_structs.h index 33a99ce437..12ce11deb3 100644 --- a/ext/mysqlnd/mysqlnd_structs.h +++ b/ext/mysqlnd/mysqlnd_structs.h @@ -627,6 +627,7 @@ typedef void (*func_mysqlnd_stmt__free_result_bind)(MYSQLND_STMT * const stm typedef unsigned int (*func_mysqlnd_stmt__server_status)(const MYSQLND_STMT * const stmt TSRMLS_DC); typedef enum_func_status (*func_mysqlnd_stmt__generate_execute_request)(MYSQLND_STMT * const s, zend_uchar ** request, size_t *request_len, zend_bool * free_buffer TSRMLS_DC); typedef enum_func_status (*func_mysqlnd_stmt__parse_execute_response)(MYSQLND_STMT * const s TSRMLS_DC); +typedef void (*func_mysqlnd_stmt__free_stmt_content)(MYSQLND_STMT * const s TSRMLS_DC); struct st_mysqlnd_stmt_methods { @@ -678,6 +679,8 @@ struct st_mysqlnd_stmt_methods func_mysqlnd_stmt__generate_execute_request generate_execute_request; func_mysqlnd_stmt__parse_execute_response parse_execute_response; + + func_mysqlnd_stmt__free_stmt_content free_stmt_content; }; |