|
19 | 19 | zend_result php_filter_callback(PHP_INPUT_FILTER_PARAM_DECL)
|
20 | 20 | {
|
21 | 21 | zval retval;
|
22 | | - intstatus; |
| 22 | + zend_fcall_info_cachefcc; |
23 | 23 |
|
24 | | - if (!option_array || !zend_is_callable(option_array, IS_CALLABLE_SUPPRESS_DEPRECATIONS, NULL)) { |
| 24 | + if (!option_array || !zend_is_callable_ex(option_array, NULL, IS_CALLABLE_SUPPRESS_DEPRECATIONS, NULL, &fcc, NULL)) { |
25 | 25 | zend_type_error("%s(): Option must be a valid callback", get_active_function_name());
|
26 | 26 | zval_ptr_dtor(value);
|
27 | 27 | ZVAL_NULL(value);
|
28 | 28 | return SUCCESS;
|
29 | 29 | }
|
30 | 30 |
|
31 | | - status = call_user_function(NULL, NULL, option_array, &retval, 1, value); |
| 31 | + zend_call_known_fcc(&fcc, &retval, 1, value, NULL); |
| 32 | + zval_ptr_dtor(value); |
32 | 33 |
|
33 | | - if (status == SUCCESS && !Z_ISUNDEF(retval)) { |
34 | | - zval_ptr_dtor(value); |
| 34 | + if (!Z_ISUNDEF(retval)) { |
35 | 35 | ZVAL_COPY_VALUE(value, &retval);
|
36 | 36 | } else {
|
37 | | - zval_ptr_dtor(value); |
38 | 37 | ZVAL_NULL(value);
|
39 | 38 | }
|
40 | 39 | return SUCCESS;
|
|
0 commit comments