cvs: ZendEngine2(PHP_5_3) / zend_vm_def.h zend_vm_execute.h /tests bug41919.phpt

From: Date: Thu, 24 Jan 2008 08:51:40 +0000
Subject: cvs: ZendEngine2(PHP_5_3) / zend_vm_def.h zend_vm_execute.h /tests bug41919.phpt
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-6295@lists.php.net to get a copy of this message
dmitry Thu Jan 24 08:51:40 2008 UTC Modified files: (Branch: PHP_5_3) /ZendEngine2 zend_vm_def.h zend_vm_execute.h /ZendEngine2/tests bug41919.phpt Log: Fixed error message

http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_vm_def.h?r1=1.59.2.29.2.48.2.30&r2=1.59.2.29.2.48.2.31&diff_format=u Index: ZendEngine2/zend_vm_def.h diff -u ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.30 ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.31 --- ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.30 Wed Jan 23 17:55:54 2008 +++ ZendEngine2/zend_vm_def.h Thu Jan 24 08:51:36 2008 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_vm_def.h,v 1.59.2.29.2.48.2.30 2008/01/23 17:55:54 dmitry Exp $ */ +/* $Id: zend_vm_def.h,v 1.59.2.29.2.48.2.31 2008/01/24 08:51:36 dmitry Exp $ */ /* If you change this file, please regenerate the zend_vm_execute.h and * zend_vm_opcodes.h files by running: @@ -1310,12 +1310,9 @@ } container = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_W); if (OP1_TYPE == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (IS_OP2_TMP_FREE()) { zval_ptr_dtor(&property); } else { @@ -1352,12 +1349,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (OP1_TYPE == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (IS_OP2_TMP_FREE()) { zval_ptr_dtor(&property); } else { @@ -1394,12 +1388,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (OP1_TYPE == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (IS_OP2_TMP_FREE()) { zval_ptr_dtor(&property); } else { @@ -1436,12 +1427,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (OP1_TYPE == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (IS_OP2_TMP_FREE()) { zval_ptr_dtor(&property); } else { http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_vm_execute.h?r1=1.62.2.30.2.49.2.31&r2=1.62.2.30.2.49.2.32&diff_format=u Index: ZendEngine2/zend_vm_execute.h diff -u ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.31 ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.32 --- ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.31 Wed Jan 23 17:55:55 2008 +++ ZendEngine2/zend_vm_execute.h Thu Jan 24 08:51:36 2008 @@ -9551,12 +9551,9 @@ } container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -9593,12 +9590,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -9635,12 +9629,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -9677,12 +9668,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -11362,12 +11350,9 @@ } container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -11404,12 +11389,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -11446,12 +11428,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -11488,12 +11467,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -13104,12 +13080,9 @@ } container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -13146,12 +13119,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -13188,12 +13158,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -13230,12 +13197,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -15476,12 +15440,9 @@ } container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -15518,12 +15479,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -15560,12 +15518,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -15602,12 +15557,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_VAR == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -16914,12 +16866,9 @@ } container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C); if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -16955,12 +16904,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -16997,12 +16943,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -17039,12 +16982,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -18016,12 +17956,9 @@ } container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C); if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -18057,12 +17994,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -18099,12 +18033,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -18141,12 +18072,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -19047,12 +18975,9 @@ } container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C); if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -19088,12 +19013,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -19130,12 +19052,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -19172,12 +19091,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -20349,12 +20265,9 @@ } container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C); if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -20390,12 +20303,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -20432,12 +20342,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -20474,12 +20381,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_UNUSED == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -23047,12 +22951,9 @@ } container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC); if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -23088,12 +22989,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -23130,12 +23028,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -23172,12 +23067,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -24686,12 +24578,9 @@ } container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC); if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -24727,12 +24616,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -24769,12 +24655,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -24811,12 +24694,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (1) { zval_ptr_dtor(&property); } else { @@ -26328,12 +26208,9 @@ } container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC); if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -26369,12 +26246,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -26411,12 +26285,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -26453,12 +26324,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -28509,12 +28377,9 @@ } container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_W TSRMLS_CC); if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -28550,12 +28415,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_RW TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -28592,12 +28454,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_W TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { @@ -28634,12 +28493,9 @@ MAKE_REAL_ZVAL_PTR(property); } if (IS_CV == IS_VAR && !container) { - zend_error(E_WARNING, "Cannot use string offset as an array"); - EX_T(opline->result.u.var).var.ptr_ptr = &EG(error_zval_ptr); - PZVAL_LOCK(EG(error_zval_ptr)); - } else { - zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); + zend_error_noreturn(E_ERROR, "Cannot use string offset as an object"); } + zend_fetch_property_address(&EX_T(opline->result.u.var), container, property, BP_VAR_UNSET TSRMLS_CC); if (0) { zval_ptr_dtor(&property); } else { http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/bug41919.phpt?r1=1.1.2.3.2.1&r2=1.1.2.3.2.2&diff_format=u Index: ZendEngine2/tests/bug41919.phpt diff -u ZendEngine2/tests/bug41919.phpt:1.1.2.3.2.1 ZendEngine2/tests/bug41919.phpt:1.1.2.3.2.2 --- ZendEngine2/tests/bug41919.phpt:1.1.2.3.2.1 Mon Dec 17 10:05:13 2007 +++ ZendEngine2/tests/bug41919.phpt Thu Jan 24 08:51:38 2008 @@ -8,5 +8,4 @@ echo "ok\n"; ?> --EXPECTF-- -Warning: Cannot use string offset as an array in %sbug41919.php on line %d -ok +Fatal error: Cannot use string offset as an object in %s/bug41919.php on line %d
« previous php.zend-engine.cvs (#6295) next »