summaryrefslogtreecommitdiff
path: root/Zend/zend_objects.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_objects.c')
-rw-r--r--Zend/zend_objects.c42
1 files changed, 2 insertions, 40 deletions
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c
index 13a6b45a7c..f25983ece3 100644
--- a/Zend/zend_objects.c
+++ b/Zend/zend_objects.c
@@ -98,9 +98,6 @@ ZEND_API void zend_objects_destroy_object(zend_object *object)
if (destructor) {
zend_object *old_exception;
zend_class_entry *orig_fake_scope;
- zend_fcall_info fci;
- zend_fcall_info_cache fcic;
- zval ret;
if (destructor->op_array.fn_flags & (ZEND_ACC_PRIVATE|ZEND_ACC_PROTECTED)) {
if (destructor->op_array.fn_flags & ZEND_ACC_PRIVATE) {
@@ -162,22 +159,7 @@ ZEND_API void zend_objects_destroy_object(zend_object *object)
orig_fake_scope = EG(fake_scope);
EG(fake_scope) = NULL;
- ZVAL_UNDEF(&ret);
-
- fci.size = sizeof(fci);
- fci.object = object;
- fci.retval = &ret;
- fci.param_count = 0;
- fci.params = NULL;
- fci.no_separation = 1;
- ZVAL_UNDEF(&fci.function_name); /* Unused */
-
- fcic.function_handler = destructor;
- fcic.called_scope = object->ce;
- fcic.object = object;
-
- zend_call_function(&fci, &fcic);
- zval_ptr_dtor(&ret);
+ zend_call_known_instance_method_with_0_params(destructor, object, NULL);
if (old_exception) {
if (EG(exception)) {
@@ -264,28 +246,8 @@ ZEND_API void ZEND_FASTCALL zend_objects_clone_members(zend_object *new_object,
}
if (old_object->ce->clone) {
- zend_fcall_info fci;
- zend_fcall_info_cache fcic;
- zval ret;
-
GC_ADDREF(new_object);
-
- ZVAL_UNDEF(&ret);
-
- fci.size = sizeof(fci);
- fci.object = new_object;
- fci.retval = &ret;
- fci.param_count = 0;
- fci.params = NULL;
- fci.no_separation = 1;
- ZVAL_UNDEF(&fci.function_name); /* Unused */
-
- fcic.function_handler = new_object->ce->clone;
- fcic.called_scope = new_object->ce;
- fcic.object = new_object;
-
- zend_call_function(&fci, &fcic);
- zval_ptr_dtor(&ret);
+ zend_call_known_instance_method_with_0_params(new_object->ce->clone, new_object, NULL);
OBJ_RELEASE(new_object);
}
}