]> granicus.if.org Git - php/commitdiff
add another hook, maybe the last one, for MYSQLND_STMT, which
authorAndrey Hristov <andrey@php.net>
Tue, 28 Sep 2010 14:36:18 +0000 (14:36 +0000)
committerAndrey Hristov <andrey@php.net>
Tue, 28 Sep 2010 14:36:18 +0000 (14:36 +0000)
was missed before

ext/mysqlnd/mysqlnd_ps.c
ext/mysqlnd/mysqlnd_structs.h

index 6ab773c4de5349b15d3d2e0b7d17f4825c682f63..c06d1b48823c41378d5c6d930d2091a7351fb6af 100644 (file)
@@ -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;
 
 
index 33a99ce43754039c7a0f7dee7374cdbb5efdf044..12ce11deb3997a4ec6e5adc2c855fdf054de2cee 100644 (file)
@@ -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;
 };