summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2010-09-28 14:36:18 +0000
committerAndrey Hristov <andrey@php.net>2010-09-28 14:36:18 +0000
commit1762d63406539783f9aaf828de0753d50e49fa2d (patch)
tree826bb9bfe71425adeb901dcecaa00e6fc77f824d
parentc8a717a2b19282e9a9a81b6fed976188256186ec (diff)
downloadphp-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.c15
-rw-r--r--ext/mysqlnd/mysqlnd_structs.h3
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;
};