Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2(PHP_5_3) / zend_execute.c zend_vm_def.h zend_vm_execute.h

From: Date: Sat, 26 Jul 2008 17:12:32 +0000
Subject: Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2(PHP_5_3) / zend_execute.c zend_vm_def.h zend_vm_execute.h
References: 1  Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-6945@lists.php.net to get a copy of this message
Hello Dmitry, can we increase the severity here? The user might think he is using a normal object and relying on the property assignment to work. Imo it should be an E_WARNING or even better an E_RECOVERABLE_ERROR. marcus Saturday, July 26, 2008, 4:08:16 PM, you wrote: > > http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute.c?r1=1.716.2.12.2.24.2.32&r2=1.716.2.12.2.24.2.33&diff_format=u > Index: ZendEngine2/zend_execute.c > diff -u ZendEngine2/zend_execute.c:1.716.2.12.2.24.2.32 > ZendEngine2/zend_execute.c:1.716.2.12.2.24.2.33 > --- ZendEngine2/zend_execute.c:1.716.2.12.2.24.2.32 Mon Jul 14 09:49:00 2008 > +++ ZendEngine2/zend_execute.c Sat Jul 26 14:08:10 2008 > @@ -17,7 +17,7 @@ > > +----------------------------------------------------------------------+ > */ > > -/* $Id: zend_execute.c,v 1.716.2.12.2.24.2.32 2008/07/14 09:49:00 dmitry Exp $ */ > +/* $Id: zend_execute.c,v 1.716.2.12.2.24.2.33 2008/07/26 14:08:10 dmitry Exp $ */ > > #define ZEND_INTENSIVE_DEBUGGING 0 > > @@ -594,6 +594,11 @@ > *retval = EG(uninitialized_zval_ptr); > PZVAL_LOCK(*retval); > } > + if (value_op->op_type == IS_TMP_VAR) { > + FREE_ZVAL(value); > + } else if (value_op->op_type == IS_CONST) { > + zval_ptr_dtor(&value); > + } > FREE_OP(free_value); > return; > } > > http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_vm_def.h?r1=1.59.2.29.2.48.2.63&r2=1.59.2.29.2.48.2.64&diff_format=u > Index: ZendEngine2/zend_vm_def.h > diff -u ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.63 > ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.64 > --- ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.63 Sat Jul 26 13:14:00 2008 > +++ ZendEngine2/zend_vm_def.h Sat Jul 26 14:08:11 2008 > @@ -18,7 +18,7 @@ > > +----------------------------------------------------------------------+ > */ > > -/* $Id: zend_vm_def.h,v 1.59.2.29.2.48.2.63 2008/07/26 13:14:00 dmitry Exp $ */ > +/* $Id: zend_vm_def.h,v 1.59.2.29.2.48.2.64 2008/07/26 14:08:11 dmitry Exp $ */ > > /* If you change this file, please regenerate the zend_vm_execute.h and > * zend_vm_opcodes.h files by running: > @@ -3479,7 +3479,11 @@ > if (IS_OP2_TMP_FREE()) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (IS_OP2_TMP_FREE()) { > zval_ptr_dtor(&offset); > } else { > @@ -3936,9 +3940,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (IS_OP2_TMP_FREE()) { > zval_ptr_dtor(&offset); > > http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_vm_execute.h?r1=1.62.2.30.2.49.2.63&r2=1.62.2.30.2.49.2.64&diff_format=u > Index: ZendEngine2/zend_vm_execute.h > diff -u ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.63 > ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.64 > --- ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.63 Sat Jul 26 13:14:00 2008 > +++ ZendEngine2/zend_vm_execute.h Sat Jul 26 14:08:11 2008 > @@ -10688,7 +10688,11 @@ > if (0) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (0) { > zval_ptr_dtor(&offset); > } else { > @@ -10777,9 +10781,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (0) { > zval_ptr_dtor(&offset); > @@ -12457,7 +12471,11 @@ > if (1) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (1) { > zval_ptr_dtor(&offset); > } else { > @@ -12546,9 +12564,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (1) { > zval_ptr_dtor(&offset); > @@ -14273,7 +14301,11 @@ > if (0) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (0) { > zval_ptr_dtor(&offset); > } else { > @@ -14362,9 +14394,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (0) { > zval_ptr_dtor(&offset); > @@ -16702,7 +16744,11 @@ > if (0) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (0) { > zval_ptr_dtor(&offset); > } else { > @@ -16791,9 +16837,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (0) { > zval_ptr_dtor(&offset); > @@ -17875,7 +17931,11 @@ > if (0) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (0) { > zval_ptr_dtor(&offset); > } else { > @@ -17963,9 +18023,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (0) { > zval_ptr_dtor(&offset); > @@ -18894,7 +18964,11 @@ > if (1) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (1) { > zval_ptr_dtor(&offset); > } else { > @@ -18982,9 +19056,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (1) { > zval_ptr_dtor(&offset); > @@ -19913,7 +19997,11 @@ > if (0) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (0) { > zval_ptr_dtor(&offset); > } else { > @@ -20001,9 +20089,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (0) { > zval_ptr_dtor(&offset); > @@ -21202,7 +21300,11 @@ > if (0) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (0) { > zval_ptr_dtor(&offset); > } else { > @@ -21290,9 +21392,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (0) { > zval_ptr_dtor(&offset); > @@ -24133,7 +24245,11 @@ > if (0) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (0) { > zval_ptr_dtor(&offset); > } else { > @@ -24221,9 +24337,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (0) { > zval_ptr_dtor(&offset); > @@ -25783,7 +25909,11 @@ > if (1) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (1) { > zval_ptr_dtor(&offset); > } else { > @@ -25871,9 +26001,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (1) { > zval_ptr_dtor(&offset); > @@ -27479,7 +27619,11 @@ > if (0) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (0) { > zval_ptr_dtor(&offset); > } else { > @@ -27567,9 +27711,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (0) { > zval_ptr_dtor(&offset); > @@ -29679,7 +29833,11 @@ > if (0) { > MAKE_REAL_ZVAL_PTR(offset); > } > - > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->unset_property) { > + > Z_OBJ_HT_P(*container)->unset_property(*container, offset TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to unset property of > non-object"); > + } > if (0) { > zval_ptr_dtor(&offset); > } else { > @@ -29767,9 +29925,19 @@ > MAKE_REAL_ZVAL_PTR(offset); > } > if (prop_dim) { > - result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if (Z_OBJ_HT_P(*container)->has_property) { > + result = > Z_OBJ_HT_P(*container)->has_property(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check property of > non-object"); > + result = 0; > + } > } else { > - result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + if > (Z_OBJ_HT_P(*container)->has_dimension) { > + result = > Z_OBJ_HT_P(*container)->has_dimension(*container, offset, > (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC); > + } else { > + zend_error(E_NOTICE, "Trying to check element of > non-array"); > + result = 0; > + } > } > if (0) { > zval_ptr_dtor(&offset); Best regards, Marcus

« previous php.zend-engine.cvs (#6945) next »