From: Nikita Popov Date: Thu, 23 Jul 2020 14:20:09 +0000 (+0200) Subject: Simplify user_stream_create_object X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a1ab7bbc3a4cdafa73264ac428ddd3af7217c8a3;p=php Simplify user_stream_create_object --- diff --git a/main/streams/userspace.c b/main/streams/userspace.c index ee74d49bde..d9fc112aa1 100644 --- a/main/streams/userspace.c +++ b/main/streams/userspace.c @@ -298,28 +298,8 @@ static void user_stream_create_object(struct php_user_stream_wrapper *uwrap, php } if (uwrap->ce->constructor) { - zend_fcall_info fci; - zend_fcall_info_cache fcc; - zval retval; - - fci.size = sizeof(fci); - ZVAL_UNDEF(&fci.function_name); - fci.object = Z_OBJ_P(object); - fci.retval = &retval; - fci.param_count = 0; - fci.params = NULL; - - fcc.function_handler = uwrap->ce->constructor; - fcc.called_scope = Z_OBJCE_P(object); - fcc.object = Z_OBJ_P(object); - - if (zend_call_function(&fci, &fcc) == FAILURE) { - php_error_docref(NULL, E_WARNING, "Could not execute %s::%s()", ZSTR_VAL(uwrap->ce->name), ZSTR_VAL(uwrap->ce->constructor->common.function_name)); - zval_ptr_dtor(object); - ZVAL_UNDEF(object); - } else { - zval_ptr_dtor(&retval); - } + zend_call_known_instance_method_with_0_params( + uwrap->ce->constructor, Z_OBJ_P(object), NULL); } }