From: Nikita Popov Date: Tue, 15 Dec 2020 09:47:39 +0000 (+0100) Subject: MySQLnd: Remove unused fetch_field_data method X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=be4f73f328f7aa85f1c893247b5007ce44445f2c;p=php MySQLnd: Remove unused fetch_field_data method This method is not used, and is implemented in a very dubious way. --- diff --git a/ext/mysqlnd/mysqlnd.h b/ext/mysqlnd/mysqlnd.h index 8010f43380..bf3a9d640f 100644 --- a/ext/mysqlnd/mysqlnd.h +++ b/ext/mysqlnd/mysqlnd.h @@ -101,7 +101,6 @@ PHPAPI void mysqlnd_debug(const char *mode); #define mysqlnd_fetch_into(result, flags, ret_val, ext) (result)->m.fetch_into((result), (flags), (ret_val), (ext) ZEND_FILE_LINE_CC) #define mysqlnd_fetch_row_c(result) (result)->m.fetch_row_c((result)) #define mysqlnd_fetch_all(result, flags, return_value) (result)->m.fetch_all((result), (flags), (return_value) ZEND_FILE_LINE_CC) -#define mysqlnd_result_fetch_field_data(res,offset,ret) (res)->m.fetch_field_data((res), (offset), (ret)) #define mysqlnd_get_connection_stats(conn, values) ((conn)->data)->m->get_statistics((conn)->data, (values) ZEND_FILE_LINE_CC) #define mysqlnd_get_client_stats(values) _mysqlnd_get_client_stats(mysqlnd_global_stats, (values) ZEND_FILE_LINE_CC) diff --git a/ext/mysqlnd/mysqlnd_result.c b/ext/mysqlnd/mysqlnd_result.c index 3dd09939ac..bdeefd5d04 100644 --- a/ext/mysqlnd/mysqlnd_result.c +++ b/ext/mysqlnd/mysqlnd_result.c @@ -1791,42 +1791,6 @@ MYSQLND_METHOD(mysqlnd_res, fetch_all)(MYSQLND_RES * result, const unsigned int /* }}} */ -/* {{{ mysqlnd_res::fetch_field_data */ -static void -MYSQLND_METHOD(mysqlnd_res, fetch_field_data)(MYSQLND_RES * result, const unsigned int offset, zval *return_value) -{ - zval row; - zval *entry; - unsigned int i = 0; - - DBG_ENTER("mysqlnd_res::fetch_field_data"); - DBG_INF_FMT("offset=%u", offset); - /* - Hint Zend how many elements we will have in the hash. Thus it won't - extend and rehash the hash constantly. - */ - mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, &row, MYSQLND_MYSQL); - if (Z_TYPE(row) != IS_ARRAY) { - zval_ptr_dtor_nogc(&row); - RETVAL_NULL(); - DBG_VOID_RETURN; - } - - zend_hash_internal_pointer_reset(Z_ARRVAL(row)); - while (i++ < offset) { - zend_hash_move_forward(Z_ARRVAL(row)); - } - - entry = zend_hash_get_current_data(Z_ARRVAL(row)); - - ZVAL_COPY(return_value, entry); - zval_ptr_dtor_nogc(&row); - - DBG_VOID_RETURN; -} -/* }}} */ - - MYSQLND_CLASS_METHODS_START(mysqlnd_res) MYSQLND_METHOD(mysqlnd_res, fetch_row), MYSQLND_METHOD(mysqlnd_res, use_result), @@ -1834,7 +1798,6 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_res) MYSQLND_METHOD(mysqlnd_res, fetch_into), MYSQLND_METHOD(mysqlnd_res, fetch_row_c), MYSQLND_METHOD(mysqlnd_res, fetch_all), - MYSQLND_METHOD(mysqlnd_res, fetch_field_data), MYSQLND_METHOD(mysqlnd_res, num_rows), MYSQLND_METHOD(mysqlnd_res, num_fields), MYSQLND_METHOD(mysqlnd_res, skip_result), diff --git a/ext/mysqlnd/mysqlnd_structs.h b/ext/mysqlnd/mysqlnd_structs.h index f5a873ddd3..f8562432ae 100644 --- a/ext/mysqlnd/mysqlnd_structs.h +++ b/ext/mysqlnd/mysqlnd_structs.h @@ -644,7 +644,6 @@ typedef MYSQLND_RES * (*func_mysqlnd_res__store_result)(MYSQLND_RES * result, M typedef void (*func_mysqlnd_res__fetch_into)(MYSQLND_RES *result, const unsigned int flags, zval *return_value, enum_mysqlnd_extension ext ZEND_FILE_LINE_DC); typedef MYSQLND_ROW_C (*func_mysqlnd_res__fetch_row_c)(MYSQLND_RES *result); typedef void (*func_mysqlnd_res__fetch_all)(MYSQLND_RES *result, const unsigned int flags, zval *return_value ZEND_FILE_LINE_DC); -typedef void (*func_mysqlnd_res__fetch_field_data)(MYSQLND_RES *result, const unsigned int offset, zval *return_value); typedef uint64_t (*func_mysqlnd_res__num_rows)(const MYSQLND_RES * const result); typedef unsigned int (*func_mysqlnd_res__num_fields)(const MYSQLND_RES * const result); typedef enum_func_status (*func_mysqlnd_res__skip_result)(MYSQLND_RES * const result); @@ -678,7 +677,6 @@ MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res) func_mysqlnd_res__fetch_into fetch_into; func_mysqlnd_res__fetch_row_c fetch_row_c; func_mysqlnd_res__fetch_all fetch_all; - func_mysqlnd_res__fetch_field_data fetch_field_data; func_mysqlnd_res__num_rows num_rows; func_mysqlnd_res__num_fields num_fields; func_mysqlnd_res__skip_result skip_result;