From: Stanislav Malyshev Date: Mon, 4 Aug 2003 10:30:42 +0000 (+0000) Subject: use get_obj_zval_ptr X-Git-Tag: RELEASE_1_2b5~54 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a3dc90d8d087ca950db64175d7299952d136f6d1;p=php use get_obj_zval_ptr --- diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 6e5feff036..a09c9144fc 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -3056,16 +3056,11 @@ int zend_new_handler(ZEND_OPCODE_HANDLER_ARGS) int zend_clone_handler(ZEND_OPCODE_HANDLER_ARGS) { - zval *obj; + zval *obj = get_obj_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R); zend_class_entry *ce; zend_function *clone; zend_object_clone_obj_t clone_call; - if(EX(opline)->op1.op_type == IS_UNUSED) { - /* this */ - obj = EG(This); - } else { - obj = get_zval_ptr(&EX(opline)->op1, EX(Ts), &EG(free_op1), BP_VAR_R); - } + if (!obj || Z_TYPE_P(obj) != IS_OBJECT) { zend_error(E_WARNING, "__clone method called on non-object"); EX_T(EX(opline)->result.u.var).var.ptr = EG(error_zval_ptr);