diff options
Diffstat (limited to 'ext/xml/xml.c')
-rw-r--r-- | ext/xml/xml.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/ext/xml/xml.c b/ext/xml/xml.c index 2504a94460..ef6f762ea4 100644 --- a/ext/xml/xml.c +++ b/ext/xml/xml.c @@ -406,13 +406,25 @@ static zval *xml_call_handler(xml_parser *parser, zval *handler, zend_function * zval *retval; int i; int result; + zend_fcall_info fci; args = emalloc(sizeof(zval **) * argc); for (i = 0; i < argc; i++) { args[i] = &argv[i]; } - result = fast_call_user_function(EG(function_table), &parser->object, handler, &retval, argc, args, 0, NULL, &function_ptr TSRMLS_CC); + fci.size = sizeof(fci); + fci.function_table = EG(function_table); + fci.function_name = handler; + fci.symbol_table = NULL; + fci.object_pp = &parser->object; + fci.retval_ptr_ptr = &retval; + fci.param_count = argc; + fci.params = args; + fci.no_separation = 0; + /*fci.function_handler_cache = &function_ptr;*/ + + result = zend_call_function(&fci, NULL TSRMLS_CC); if (result == FAILURE) { zval **method; zval **obj; |