summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index e35e86fab1..c0244b74a0 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1294,7 +1294,8 @@ binary_assign_op_addr: {
object_ptr = get_zval_ptr_ptr(&opline->op1, Ts, BP_VAR_R);
- if (!object_ptr || (*object_ptr)->value.obj.ce->handle_function_call) { /* overloaded function call */
+ if (!object_ptr
+ || ((*object_ptr)->type==IS_OBJECT && (*object_ptr)->value.obj.ce->handle_function_call)) { /* overloaded function call */
zend_overloaded_element overloaded_element;
zend_property_reference *property_reference;
@@ -1304,10 +1305,6 @@ binary_assign_op_addr: {
if (object_ptr) {
zend_property_reference property_reference;
- if ((*object_ptr)->type != IS_OBJECT) {
- zend_error(E_ERROR, "Call to a member function on a non-object");
- }
-
property_reference.object = object_ptr;
property_reference.type = BP_VAR_NA;
zend_llist_init(&property_reference.elements_list, sizeof(zend_overloaded_element), NULL, 0);