From f0a2e8eb13b3971ec11baa2a6029ed7c4cb0064b Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 27 Apr 2016 13:46:38 +0300 Subject: [PATCH] Removed "zend_fcall_info.function_table". It was assigned in many places, but is never used. --- Zend/zend_API.c | 1 - Zend/zend_API.h | 8 ++++---- Zend/zend_exceptions.c | 1 - Zend/zend_execute_API.c | 12 ++---------- Zend/zend_interfaces.c | 1 - ext/curl/interface.c | 5 ----- ext/dom/xpath.c | 1 - ext/mysqli/mysqli.c | 1 - ext/pdo/pdo_dbh.c | 1 - ext/pdo/pdo_stmt.c | 1 - ext/pdo_sqlite/sqlite_driver.c | 2 -- ext/pgsql/pgsql.c | 1 - ext/reflection/php_reflection.c | 8 -------- ext/soap/soap.c | 1 - ext/spl/spl_directory.c | 1 - ext/spl/spl_engine.h | 1 - ext/sqlite3/sqlite3.c | 2 -- ext/xml/xml.c | 1 - ext/xsl/xsltprocessor.c | 1 - main/streams/userspace.c | 1 - sapi/phpdbg/phpdbg_prompt.c | 1 - 21 files changed, 6 insertions(+), 46 deletions(-) diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 18e6e0f4f4..fdb9628dbf 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -3412,7 +3412,6 @@ ZEND_API int zend_fcall_info_init(zval *callable, uint check_flags, zend_fcall_i } fci->size = sizeof(*fci); - fci->function_table = fcc->calling_scope ? &fcc->calling_scope->function_table : EG(function_table); fci->object = fcc->object; ZVAL_COPY_VALUE(&fci->function_name, callable); fci->retval = NULL; diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 07b48365f3..cc54a90867 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -43,7 +43,6 @@ typedef struct _zend_function_entry { typedef struct _zend_fcall_info { size_t size; - HashTable *function_table; zval function_name; zval *retval; zval *params; @@ -468,11 +467,12 @@ ZEND_API int add_property_zval_ex(zval *arg, const char *key, size_t key_len, zv #define add_property_zval(__arg, __key, __value) add_property_zval_ex(__arg, __key, strlen(__key), __value) -ZEND_API int call_user_function(HashTable *function_table, zval *object, zval *function_name, zval *retval_ptr, uint32_t param_count, zval params[]); -ZEND_API int _call_user_function_ex(HashTable *function_table, zval *object, zval *function_name, zval *retval_ptr, uint32_t param_count, zval params[], int no_separation); +ZEND_API int _call_user_function_ex(zval *object, zval *function_name, zval *retval_ptr, uint32_t param_count, zval params[], int no_separation); +#define call_user_function(function_table, object, function_name, retval_ptr, param_count, params) \ + _call_user_function_ex(object, function_name, retval_ptr, param_count, params, 1) #define call_user_function_ex(function_table, object, function_name, retval_ptr, param_count, params, no_separation, symbol_table) \ - _call_user_function_ex(function_table, object, function_name, retval_ptr, param_count, params, no_separation) + _call_user_function_ex(object, function_name, retval_ptr, param_count, params, no_separation) ZEND_API extern const zend_fcall_info empty_fcall_info; ZEND_API extern const zend_fcall_info_cache empty_fcall_info_cache; diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 6d396e7854..f7081327f0 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -678,7 +678,6 @@ ZEND_METHOD(exception, __toString) zend_long line = zval_get_long(GET_PROPERTY(exception, "line")); fci.size = sizeof(fci); - fci.function_table = &Z_OBJCE_P(exception)->function_table; ZVAL_COPY_VALUE(&fci.function_name, &fname); fci.object = Z_OBJ_P(exception); fci.retval = &trace; diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index f1abd801d1..63d20e1fe2 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -46,7 +46,7 @@ ZEND_API void (*zend_execute_ex)(zend_execute_data *execute_data); ZEND_API void (*zend_execute_internal)(zend_execute_data *execute_data, zval *return_value); /* true globals */ -ZEND_API const zend_fcall_info empty_fcall_info = { 0, NULL, {{0}, {{0}}, {0}}, NULL, NULL, NULL, 0, 0 }; +ZEND_API const zend_fcall_info empty_fcall_info = { 0, {{0}, {{0}}, {0}}, NULL, NULL, NULL, 0, 0 }; ZEND_API const zend_fcall_info_cache empty_fcall_info_cache = { 0, NULL, NULL, NULL, NULL }; #ifdef ZEND_WIN32 @@ -663,18 +663,11 @@ ZEND_API int zval_update_constant(zval *pp, zend_bool inline_change) /* {{{ */ } /* }}} */ -int call_user_function(HashTable *function_table, zval *object, zval *function_name, zval *retval_ptr, uint32_t param_count, zval params[]) /* {{{ */ -{ - return call_user_function_ex(function_table, object, function_name, retval_ptr, param_count, params, 1, NULL); -} -/* }}} */ - -int _call_user_function_ex(HashTable *function_table, zval *object, zval *function_name, zval *retval_ptr, uint32_t param_count, zval params[], int no_separation) /* {{{ */ +int _call_user_function_ex(zval *object, zval *function_name, zval *retval_ptr, uint32_t param_count, zval params[], int no_separation) /* {{{ */ { zend_fcall_info fci; fci.size = sizeof(fci); - fci.function_table = function_table; fci.object = object ? Z_OBJ_P(object) : NULL; ZVAL_COPY_VALUE(&fci.function_name, function_name); fci.retval = retval_ptr; @@ -1023,7 +1016,6 @@ ZEND_API zend_class_entry *zend_lookup_class_ex(zend_string *name, const zval *k } fcall_info.size = sizeof(fcall_info); - fcall_info.function_table = EG(function_table); ZVAL_STR_COPY(&fcall_info.function_name, EG(autoload_func)->common.function_name); fcall_info.retval = &local_retval; fcall_info.param_count = 1; diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index c7d225704f..2dadb39b17 100644 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -59,7 +59,6 @@ ZEND_API zval* zend_call_method(zval *object, zend_class_entry *obj_ce, zend_fun if (!fn_proxy && !obj_ce) { /* no interest in caching and no information already present that is * needed later inside zend_call_function. */ - fci.function_table = !object ? EG(function_table) : NULL; result = zend_call_function(&fci, NULL); zval_ptr_dtor(&fci.function_name); } else { diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 4e0b321de0..53d76a076c 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -1342,7 +1342,6 @@ static size_t curl_write(char *data, size_t size, size_t nmemb, void *ctx) ZVAL_STRINGL(&argv[1], data, length); fci.size = sizeof(fci); - fci.function_table = EG(function_table); fci.object = NULL; ZVAL_COPY_VALUE(&fci.function_name, &t->func_name); fci.retval = &retval; @@ -1392,7 +1391,6 @@ static int curl_fnmatch(void *ctx, const char *pattern, const char *string) ZVAL_STRING(&argv[2], string); fci.size = sizeof(fci); - fci.function_table = EG(function_table); ZVAL_COPY_VALUE(&fci.function_name, &t->func_name); fci.object = NULL; fci.retval = &retval; @@ -1448,7 +1446,6 @@ static size_t curl_progress(void *clientp, double dltotal, double dlnow, double ZVAL_LONG(&argv[4], (zend_long)ulnow); fci.size = sizeof(fci); - fci.function_table = EG(function_table); ZVAL_COPY_VALUE(&fci.function_name, &t->func_name); fci.object = NULL; fci.retval = &retval; @@ -1510,7 +1507,6 @@ static size_t curl_read(char *data, size_t size, size_t nmemb, void *ctx) ZVAL_LONG(&argv[2], (int)size * nmemb); fci.size = sizeof(fci); - fci.function_table = EG(function_table); ZVAL_COPY_VALUE(&fci.function_name, &t->func_name); fci.object = NULL; fci.retval = &retval; @@ -1577,7 +1573,6 @@ static size_t curl_write_header(char *data, size_t size, size_t nmemb, void *ctx ZVAL_STRINGL(&argv[1], data, length); fci.size = sizeof(fci); - fci.function_table = EG(function_table); ZVAL_COPY_VALUE(&fci.function_name, &t->func_name); fci.object = NULL; fci.retval = &retval; diff --git a/ext/dom/xpath.c b/ext/dom/xpath.c index 3cc9abaa3c..e31dcefb78 100644 --- a/ext/dom/xpath.c +++ b/ext/dom/xpath.c @@ -171,7 +171,6 @@ static void dom_xpath_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, } fci.size = sizeof(fci); - fci.function_table = EG(function_table); obj = valuePop(ctxt); if (obj->stringval == NULL) { diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c index 7d971c1b99..e339e85d34 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -1282,7 +1282,6 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags if (ce->constructor) { fci.size = sizeof(fci); - fci.function_table = &ce->function_table; ZVAL_UNDEF(&fci.function_name); fci.object = Z_OBJ_P(return_value); fci.retval = &retval; diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index 1d77f3e0eb..68c9d67a6a 100644 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -436,7 +436,6 @@ static void pdo_stmt_construct(zend_execute_data *execute_data, pdo_stmt_t *stmt zval retval; fci.size = sizeof(zend_fcall_info); - fci.function_table = &dbstmt_ce->function_table; ZVAL_UNDEF(&fci.function_name); fci.object = Z_OBJ_P(object); fci.retval = &retval; diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index da557b8597..91546c02c5 100644 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -740,7 +740,6 @@ static int do_fetch_class_prepare(pdo_stmt_t *stmt) /* {{{ */ } if (ce->constructor) { - fci->function_table = &ce->function_table; ZVAL_UNDEF(&fci->function_name); fci->retval = &stmt->fetch.cls.retval; fci->param_count = 0; diff --git a/ext/pdo_sqlite/sqlite_driver.c b/ext/pdo_sqlite/sqlite_driver.c index 8c732b9dbe..4e729aab0e 100644 --- a/ext/pdo_sqlite/sqlite_driver.c +++ b/ext/pdo_sqlite/sqlite_driver.c @@ -325,7 +325,6 @@ static int do_callback(struct pdo_sqlite_fci *fc, zval *cb, fake_argc = argc + is_agg; fc->fci.size = sizeof(fc->fci); - fc->fci.function_table = EG(function_table); ZVAL_COPY_VALUE(&fc->fci.function_name, cb); fc->fci.object = NULL; fc->fci.retval = &retval; @@ -475,7 +474,6 @@ static int php_sqlite3_collation_callback(void *context, struct pdo_sqlite_collation *collation = (struct pdo_sqlite_collation*) context; collation->fc.fci.size = sizeof(collation->fc.fci); - collation->fc.fci.function_table = EG(function_table); ZVAL_COPY_VALUE(&collation->fc.fci.function_name, &collation->callback); collation->fc.fci.object = NULL; collation->fc.fci.retval = &retval; diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index df13692054..82a7503409 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -2823,7 +2823,6 @@ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, zend_long result_ if (ce->constructor) { fci.size = sizeof(fci); - fci.function_table = &ce->function_table; ZVAL_UNDEF(&fci.function_name); fci.object = Z_OBJ_P(return_value); fci.retval = &retval; diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 186df87fd7..fe89db9dee 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -1428,7 +1428,6 @@ static void _reflection_export(INTERNAL_FUNCTION_PARAMETERS, zend_class_entry *c /* Call __construct() */ fci.size = sizeof(fci); - fci.function_table = NULL; ZVAL_UNDEF(&fci.function_name); fci.object = Z_OBJ(reflector); fci.retval = &retval; @@ -1461,7 +1460,6 @@ static void _reflection_export(INTERNAL_FUNCTION_PARAMETERS, zend_class_entry *c ZVAL_COPY_VALUE(¶ms[1], output_ptr); ZVAL_STRINGL(&fci.function_name, "reflection::export", sizeof("reflection::export") - 1); - fci.function_table = &reflection_ptr->function_table; fci.object = NULL; fci.retval = &retval; fci.param_count = 2; @@ -1962,7 +1960,6 @@ ZEND_METHOD(reflection_function, invoke) } fci.size = sizeof(fci); - fci.function_table = NULL; ZVAL_UNDEF(&fci.function_name); fci.object = NULL; fci.retval = &retval; @@ -2021,7 +2018,6 @@ ZEND_METHOD(reflection_function, invokeArgs) } ZEND_HASH_FOREACH_END(); fci.size = sizeof(fci); - fci.function_table = NULL; ZVAL_UNDEF(&fci.function_name); fci.object = NULL; fci.retval = &retval; @@ -3252,7 +3248,6 @@ ZEND_METHOD(reflection_method, invoke) } fci.size = sizeof(fci); - fci.function_table = NULL; ZVAL_UNDEF(&fci.function_name); fci.object = object; fci.retval = &retval; @@ -3358,7 +3353,6 @@ ZEND_METHOD(reflection_method, invokeArgs) } fci.size = sizeof(fci); - fci.function_table = NULL; ZVAL_UNDEF(&fci.function_name); fci.object = object ? Z_OBJ_P(object) : NULL; fci.retval = &retval; @@ -4890,7 +4884,6 @@ ZEND_METHOD(reflection_class, newInstance) } fci.size = sizeof(fci); - fci.function_table = EG(function_table); ZVAL_UNDEF(&fci.function_name); fci.object = Z_OBJ_P(return_value); fci.retval = &retval; @@ -4993,7 +4986,6 @@ ZEND_METHOD(reflection_class, newInstanceArgs) } fci.size = sizeof(fci); - fci.function_table = EG(function_table); ZVAL_UNDEF(&fci.function_name); fci.object = Z_OBJ_P(return_value); fci.retval = &retval; diff --git a/ext/soap/soap.c b/ext/soap/soap.c index fcfa2511eb..c842ce5119 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -953,7 +953,6 @@ PHP_METHOD(SoapFault, __toString) line = zend_read_property(soap_fault_class_entry, this_ptr, "line", sizeof("line")-1, 1, &rv4); fci.size = sizeof(fci); - fci.function_table = &Z_OBJCE_P(getThis())->function_table; ZVAL_STRINGL(&fci.function_name, "gettraceasstring", sizeof("gettraceasstring")-1); fci.object = Z_OBJ(EX(This)); fci.retval = &trace; diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index 2a1df40fbb..51adb18436 100644 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -2075,7 +2075,6 @@ static int spl_filesystem_file_call(spl_filesystem_object *intern, zend_function ZVAL_UNDEF(&retval); fci.size = sizeof(fci); - fci.function_table = EG(function_table); fci.object = NULL; fci.retval = &retval; fci.param_count = num_args; diff --git a/ext/spl/spl_engine.h b/ext/spl/spl_engine.h index 0ee23cac1c..e73e0f08a0 100644 --- a/ext/spl/spl_engine.h +++ b/ext/spl/spl_engine.h @@ -62,7 +62,6 @@ static inline void spl_instantiate_arg_n(zend_class_entry *pce, zval *retval, in spl_instantiate(pce, retval); fci.size = sizeof(zend_fcall_info); - fci.function_table = &pce->function_table; ZVAL_STR(&fci.function_name, func->common.function_name); fci.object = Z_OBJ_P(retval); fci.retval = &dummy; diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c index 64b05d7e05..d7f7722959 100644 --- a/ext/sqlite3/sqlite3.c +++ b/ext/sqlite3/sqlite3.c @@ -683,7 +683,6 @@ static int sqlite3_do_callback(struct php_sqlite3_fci *fc, zval *cb, int argc, s fake_argc = argc + is_agg; fc->fci.size = sizeof(fc->fci); - fc->fci.function_table = EG(function_table); ZVAL_COPY_VALUE(&fc->fci.function_name, cb); fc->fci.object = NULL; fc->fci.retval = &retval; @@ -841,7 +840,6 @@ static int php_sqlite3_callback_compare(void *coll, int a_len, const void *a, in int ret; collation->fci.fci.size = (sizeof(collation->fci.fci)); - collation->fci.fci.function_table = EG(function_table); ZVAL_COPY_VALUE(&collation->fci.fci.function_name, &collation->cmp_func); collation->fci.fci.object = NULL; collation->fci.fci.retval = &retval; diff --git a/ext/xml/xml.c b/ext/xml/xml.c index a3a42655d0..6b93e2fcc3 100644 --- a/ext/xml/xml.c +++ b/ext/xml/xml.c @@ -483,7 +483,6 @@ static void xml_call_handler(xml_parser *parser, zval *handler, zend_function *f zend_fcall_info fci; fci.size = sizeof(fci); - fci.function_table = EG(function_table); ZVAL_COPY_VALUE(&fci.function_name, handler); fci.object = Z_OBJ(parser->object); fci.retval = retval; diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c index 1c434039e2..5339812253 100644 --- a/ext/xsl/xsltprocessor.c +++ b/ext/xsl/xsltprocessor.c @@ -295,7 +295,6 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t } fci.size = sizeof(fci); - fci.function_table = EG(function_table); if (fci.param_count > 0) { fci.params = args; } else { diff --git a/main/streams/userspace.c b/main/streams/userspace.c index 00775aa0c8..5ad7dc2e64 100644 --- a/main/streams/userspace.c +++ b/main/streams/userspace.c @@ -299,7 +299,6 @@ static void user_stream_create_object(struct php_user_stream_wrapper *uwrap, php zval retval; fci.size = sizeof(fci); - fci.function_table = &uwrap->ce->function_table; ZVAL_UNDEF(&fci.function_name); fci.object = Z_OBJ_P(object); fci.retval = &retval; diff --git a/sapi/phpdbg/phpdbg_prompt.c b/sapi/phpdbg/phpdbg_prompt.c index ac86c15629..a9fd351ffd 100644 --- a/sapi/phpdbg/phpdbg_prompt.c +++ b/sapi/phpdbg/phpdbg_prompt.c @@ -120,7 +120,6 @@ static inline int phpdbg_call_register(phpdbg_param_t *stack) /* {{{ */ ZVAL_STRINGL(&fci.function_name, lc_name, name->len); fci.size = sizeof(zend_fcall_info); - fci.function_table = &PHPDBG_G(registered); //???fci.symbol_table = zend_rebuild_symbol_table(); fci.object = NULL; fci.retval = &fretval; -- 2.40.0