]> granicus.if.org Git - php/commitdiff
Fixed apply_func_args_t
authorXinchen Hui <laruence@php.net>
Sun, 25 May 2014 12:04:35 +0000 (20:04 +0800)
committerXinchen Hui <laruence@php.net>
Sun, 25 May 2014 12:04:35 +0000 (20:04 +0800)
Zend/zend_builtin_functions.c
Zend/zend_closures.c
Zend/zend_compile.c
Zend/zend_exceptions.c
Zend/zend_generators.c

index b207d698f8467e66b5c6bfc4f444964e837e19ab..f10d455db11db301a5df9700e20fad4b3e41de48 100644 (file)
@@ -1577,13 +1577,13 @@ ZEND_FUNCTION(restore_exception_handler)
 }
 /* }}} */
 
-static int copy_class_or_interface_name(zend_class_entry **pce TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key)
+static int copy_class_or_interface_name(zval *el TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key)
 {
+       zend_class_entry *ce = (zend_class_entry *)Z_PTR_P(el);
        zval *array = va_arg(args, zval *);
        zend_uint mask = va_arg(args, zend_uint);
        zend_uint comply = va_arg(args, zend_uint);
        zend_uint comply_mask = (comply)? mask:0;
-       zend_class_entry *ce  = *pce;
 
        if ((hash_key->key && hash_key->key->val[0] != 0)
                && (comply_mask == (ce->ce_flags & mask))) {
@@ -1610,7 +1610,7 @@ ZEND_FUNCTION(get_declared_traits)
        }
 
        array_init(return_value);
-       zend_hash_apply_with_arguments(EG(class_table) TSRMLS_CC, (apply_func_args_t) copy_class_or_interface_name, 3, return_value, mask, comply);
+       zend_hash_apply_with_arguments(EG(class_table) TSRMLS_CC, copy_class_or_interface_name, 3, return_value, mask, comply);
 }
 /* }}} */
 
@@ -1627,7 +1627,7 @@ ZEND_FUNCTION(get_declared_classes)
        }
 
        array_init(return_value);
-       zend_hash_apply_with_arguments(EG(class_table) TSRMLS_CC, (apply_func_args_t) copy_class_or_interface_name, 3, return_value, mask, comply);
+       zend_hash_apply_with_arguments(EG(class_table) TSRMLS_CC, copy_class_or_interface_name, 3, return_value, mask, comply);
 }
 /* }}} */
 
@@ -1643,7 +1643,7 @@ ZEND_FUNCTION(get_declared_interfaces)
        }
 
        array_init(return_value);
-       zend_hash_apply_with_arguments(EG(class_table) TSRMLS_CC, (apply_func_args_t) copy_class_or_interface_name, 3, return_value, mask, comply);
+       zend_hash_apply_with_arguments(EG(class_table) TSRMLS_CC, copy_class_or_interface_name, 3, return_value, mask, comply);
 }
 /* }}} */
 
@@ -1682,7 +1682,7 @@ ZEND_FUNCTION(get_defined_functions)
        array_init(&user);
        array_init(return_value);
 
-       zend_hash_apply_with_arguments(EG(function_table) TSRMLS_CC, (apply_func_args_t) copy_function_name, 2, &internal, &user);
+       zend_hash_apply_with_arguments(EG(function_table) TSRMLS_CC, copy_function_name, 2, &internal, &user);
 
        ret = zend_hash_str_add(Z_ARRVAL_P(return_value), "internal", sizeof("internal")-1, &internal);
 
index 96252e8be0527d7582804d02ff978f8aa48dd0f7..ea71950d48b223d5092ddfd2fabd298c480e746c 100644 (file)
@@ -432,7 +432,7 @@ ZEND_API void zend_create_closure(zval *res, zend_function *func, zend_class_ent
 
                        ALLOC_HASHTABLE(closure->func.op_array.static_variables);
                        zend_hash_init(closure->func.op_array.static_variables, zend_hash_num_elements(static_variables), NULL, ZVAL_PTR_DTOR, 0);
-                       zend_hash_apply_with_arguments(static_variables TSRMLS_CC, (apply_func_args_t)zval_copy_static_var, 1, closure->func.op_array.static_variables);
+                       zend_hash_apply_with_arguments(static_variables TSRMLS_CC, zval_copy_static_var, 1, closure->func.op_array.static_variables);
                }
                closure->func.op_array.run_time_cache = NULL;
                (*closure->func.op_array.refcount)++;
index ed1b9806333fcf0600d14574f0e419bea88059a8..4923f634085ff8d2f0ce42168384dcfb1b06c88f 100644 (file)
@@ -3727,7 +3727,7 @@ ZEND_API void zend_do_inherit_interfaces(zend_class_entry *ce, const zend_class_
        zval_add_ref
 #endif
 
-static int do_inherit_class_constant(zval *zv TSRMLS_DC, int num_args, va_list args, const zend_hash_key *hash_key) /* {{{ */
+static int do_inherit_class_constant(zval *zv TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */
 {
        zend_class_entry *ce = va_arg(args, zend_class_entry *);
        zend_class_entry *parent_ce = va_arg(args, zend_class_entry *);
@@ -3849,7 +3849,7 @@ ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent
 
        zend_hash_merge_ex(&ce->properties_info, &parent_ce->properties_info, (ce->type & ZEND_INTERNAL_CLASS ? zend_duplicate_property_info_internal_zval : zend_duplicate_property_info_zval), (merge_checker_func_t) do_inherit_property_access_check, ce);
 
-       zend_hash_apply_with_arguments(&parent_ce->constants_table TSRMLS_CC, (apply_func_args_t)do_inherit_class_constant, 2, ce, parent_ce);
+       zend_hash_apply_with_arguments(&parent_ce->constants_table TSRMLS_CC, do_inherit_class_constant, 2, ce, parent_ce);
        zend_hash_merge_ex(&ce->function_table, &parent_ce->function_table, do_inherit_method, (merge_checker_func_t) do_inherit_method_check, ce);
        do_inherit_parent_constructor(ce);
 
@@ -3879,7 +3879,7 @@ static zend_bool do_inherit_constant_check(HashTable *child_constants_table, zva
 }
 /* }}} */
 
-static int do_interface_constant_check(zval *val TSRMLS_DC, int num_args, va_list args, const zend_hash_key *key) /* {{{ */
+static int do_interface_constant_check(zval *val TSRMLS_DC, int num_args, va_list args, zend_hash_key *key) /* {{{ */
 {
        zend_class_entry **iface = va_arg(args, zend_class_entry**);
 
@@ -3889,7 +3889,7 @@ static int do_interface_constant_check(zval *val TSRMLS_DC, int num_args, va_lis
 }
 /* }}} */
 
-static int do_inherit_iface_constant(zval *zv TSRMLS_DC, int num_args, va_list args, const zend_hash_key *hash_key) /* {{{ */
+static int do_inherit_iface_constant(zval *zv TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */
 {
        zend_class_entry *ce = va_arg(args, zend_class_entry *);
        zend_class_entry *iface = va_arg(args, zend_class_entry *);
@@ -3925,7 +3925,7 @@ ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry
        }
        if (ignore) {
                /* Check for attempt to redeclare interface constants */
-               zend_hash_apply_with_arguments(&ce->constants_table TSRMLS_CC, (apply_func_args_t) do_interface_constant_check, 1, &iface);
+               zend_hash_apply_with_arguments(&ce->constants_table TSRMLS_CC, do_interface_constant_check, 1, &iface);
        } else {
                if (ce->num_interfaces >= current_iface_num) {
                        if (ce->type == ZEND_INTERNAL_CLASS) {
@@ -3936,7 +3936,7 @@ ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry
                }
                ce->interfaces[ce->num_interfaces++] = iface;
 
-               zend_hash_apply_with_arguments(&iface->constants_table TSRMLS_CC, (apply_func_args_t)do_inherit_iface_constant, 2, ce, iface);
+               zend_hash_apply_with_arguments(&iface->constants_table TSRMLS_CC, do_inherit_iface_constant, 2, ce, iface);
                zend_hash_merge_ex(&ce->function_table, &iface->function_table, do_inherit_method, (merge_checker_func_t) do_inherit_method_check, ce);
 
                do_implement_interface(ce, iface TSRMLS_CC);
index ae0ae834e4387090eef1f2f0dc6a4ea82bdb4638..2c967d578c21f2668a1e52b7d22f7e3b406d99ab 100644 (file)
@@ -569,7 +569,7 @@ static int _build_trace_string(zval *frame TSRMLS_DC, int num_args, va_list args
        if (tmp) {
                if (Z_TYPE_P(tmp) == IS_ARRAY) {
                        int last_len = str->len;
-                       zend_hash_apply_with_arguments(Z_ARRVAL_P(tmp) TSRMLS_CC, (apply_func_args_t)_build_trace_args, 1, &str);
+                       zend_hash_apply_with_arguments(Z_ARRVAL_P(tmp) TSRMLS_CC, _build_trace_args, 1, &str);
                        if (last_len != str->len) {
                                str->len -= 2; /* remove last ', ' */
                        }
@@ -597,7 +597,7 @@ ZEND_METHOD(exception, getTraceAsString)
        str = STR_ALLOC(0, 0);
 
        trace = zend_read_property(default_exception_ce, getThis(), "trace", sizeof("trace")-1, 1 TSRMLS_CC);
-       zend_hash_apply_with_arguments(Z_ARRVAL_P(trace) TSRMLS_CC, (apply_func_args_t)_build_trace_string, 2, &str, &num);
+       zend_hash_apply_with_arguments(Z_ARRVAL_P(trace) TSRMLS_CC, _build_trace_string, 2, &str, &num);
 
        len = sprintf(s_tmp, "#%d {main}", num);
        TRACE_APPEND_STRL(s_tmp, len);
index 0f19e84041a89f5cb40ab59dd82198b4f16461e1..e275d92c9163ac3bfd220287f717e8ac5ca54175 100644 (file)
@@ -235,13 +235,14 @@ static zend_object *zend_generator_create(zend_class_entry *class_type TSRMLS_DC
 }
 /* }}} */
 
-static void copy_closure_static_var(zval *var TSRMLS_DC, int num_args, va_list args, zend_hash_key *key) /* {{{ */
+static int copy_closure_static_var(zval *var TSRMLS_DC, int num_args, va_list args, zend_hash_key *key) /* {{{ */
 {
        HashTable *target = va_arg(args, HashTable *);
 
        SEPARATE_ZVAL_TO_MAKE_IS_REF(var);
        Z_ADDREF_P(var);
        zend_hash_update(target, key->key, var);
+       return 0;
 }
 /* }}} */
 
@@ -272,8 +273,8 @@ ZEND_API void zend_generator_create_zval(zend_op_array *op_array, zval *return_v
                        );
                        zend_hash_apply_with_arguments(
                                op_array->static_variables TSRMLS_CC,
-                               (apply_func_args_t) copy_closure_static_var,
-                               1, op_array_copy->static_variables
+                               copy_closure_static_var, 1, 
+                               op_array_copy->static_variables
                        );
                }