From: Nikita Popov Date: Tue, 15 Dec 2020 11:29:15 +0000 (+0100) Subject: MySQLnd: Drop free_result_internal X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=806465892ed846af0a4051c8fe886504787c1455;p=php MySQLnd: Drop free_result_internal Merge it into free_result. There is a large number of different free_* functions for result sets, let's avoid having one more. Only difference is that it does not increment stats, and that seems like a bug as free_stmt_result is still freeing a result. --- diff --git a/ext/mysqlnd/mysqlnd_ps.c b/ext/mysqlnd/mysqlnd_ps.c index ba6085fce4..b12892f722 100644 --- a/ext/mysqlnd/mysqlnd_ps.c +++ b/ext/mysqlnd/mysqlnd_ps.c @@ -1982,7 +1982,7 @@ MYSQLND_METHOD(mysqlnd_stmt, free_stmt_result)(MYSQLND_STMT * const s) mysqlnd_stmt_separate_result_bind(s); /* Not every statement has a result set attached */ if (stmt->result) { - stmt->result->m.free_result_internal(stmt->result); + stmt->result->m.free_result(stmt->result, /* implicit */ TRUE); stmt->result = NULL; } zend_llist_clean(&stmt->error_info->error_list); diff --git a/ext/mysqlnd/mysqlnd_result.c b/ext/mysqlnd/mysqlnd_result.c index af042030ce..a9300a8304 100644 --- a/ext/mysqlnd/mysqlnd_result.c +++ b/ext/mysqlnd/mysqlnd_result.c @@ -301,20 +301,6 @@ void MYSQLND_METHOD(mysqlnd_res, free_result_contents_internal)(MYSQLND_RES * re /* }}} */ -/* {{{ mysqlnd_res::free_result_internal */ -static -void MYSQLND_METHOD(mysqlnd_res, free_result_internal)(MYSQLND_RES * result) -{ - DBG_ENTER("mysqlnd_res::free_result_internal"); - - result->m.skip_result(result); - result->m.free_result_contents(result); - - DBG_VOID_RETURN; -} -/* }}} */ - - /* {{{ mysqlnd_res::read_result_metadata */ static enum_func_status MYSQLND_METHOD(mysqlnd_res, read_result_metadata)(MYSQLND_RES * result, MYSQLND_CONN_DATA * conn) @@ -1361,7 +1347,7 @@ MYSQLND_METHOD(mysqlnd_res, store_result)(MYSQLND_RES * result, DBG_ENTER("mysqlnd_res::store_result"); /* We need the conn because we are doing lazy zval initialization in buffered_fetch_row */ - /* In case of error the reference will be released in free_result_internal() called indirectly by our caller */ + /* In case of error the reference will be released in free_result() called indirectly by our caller */ result->conn = conn->m->get_reference(conn); result->type = MYSQLND_RES_NORMAL; @@ -1460,7 +1446,8 @@ MYSQLND_METHOD(mysqlnd_res, free_result)(MYSQLND_RES * result, const zend_bool i implicit == TRUE? STAT_FREE_RESULT_IMPLICIT: STAT_FREE_RESULT_EXPLICIT); - result->m.free_result_internal(result); + result->m.skip_result(result); + result->m.free_result_contents(result); DBG_RETURN(PASS); } /* }}} */ @@ -1786,7 +1773,6 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_res) MYSQLND_METHOD(mysqlnd_res, store_result_fetch_data), MYSQLND_METHOD(mysqlnd_res, free_result_buffers), MYSQLND_METHOD(mysqlnd_res, free_result), - MYSQLND_METHOD(mysqlnd_res, free_result_internal), MYSQLND_METHOD(mysqlnd_res, free_result_contents_internal), mysqlnd_result_meta_init, NULL, /* unused1 */ diff --git a/ext/mysqlnd/mysqlnd_structs.h b/ext/mysqlnd/mysqlnd_structs.h index f992f70baf..da67a7e502 100644 --- a/ext/mysqlnd/mysqlnd_structs.h +++ b/ext/mysqlnd/mysqlnd_structs.h @@ -660,7 +660,6 @@ typedef enum_func_status (*func_mysqlnd_res__store_result_fetch_data)(MYSQLND_CO typedef void (*func_mysqlnd_res__free_result_buffers)(MYSQLND_RES * result); /* private */ typedef enum_func_status (*func_mysqlnd_res__free_result)(MYSQLND_RES * result, const zend_bool implicit); -typedef void (*func_mysqlnd_res__free_result_internal)(MYSQLND_RES *result); typedef void (*func_mysqlnd_res__free_result_contents)(MYSQLND_RES *result); typedef void (*func_mysqlnd_res__free_buffered_data)(MYSQLND_RES *result); typedef void (*func_mysqlnd_res__unbuffered_free_last_data)(MYSQLND_RES *result); @@ -691,7 +690,6 @@ MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res) func_mysqlnd_res__store_result_fetch_data store_result_fetch_data; func_mysqlnd_res__free_result_buffers free_result_buffers; func_mysqlnd_res__free_result free_result; - func_mysqlnd_res__free_result_internal free_result_internal; func_mysqlnd_res__free_result_contents free_result_contents; func_mysqlnd_res__result_meta_init result_meta_init;