if (OP1_TYPE == IS_VAR && EX_T(opline->op1.u.var).var.ptr == NULL) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
+ if (OP1_TYPE == IS_VAR && EX_T(opline->op1.u.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.u.var).var.ptr_ptr);
+ }
container = GET_OP1_ZVAL_PTR(BP_VAR_R);
if (Z_TYPE_P(container) != IS_ARRAY) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {
if (IS_CONST == IS_VAR && EX_T(opline->op1.u.var).var.ptr == NULL) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
+ if (IS_CONST == IS_VAR && EX_T(opline->op1.u.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.u.var).var.ptr_ptr);
+ }
container = &opline->op1.u.constant;
if (Z_TYPE_P(container) != IS_ARRAY) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {
if (IS_TMP_VAR == IS_VAR && EX_T(opline->op1.u.var).var.ptr == NULL) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
+ if (IS_TMP_VAR == IS_VAR && EX_T(opline->op1.u.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.u.var).var.ptr_ptr);
+ }
container = _get_zval_ptr_tmp(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
if (Z_TYPE_P(container) != IS_ARRAY) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {
if (IS_VAR == IS_VAR && EX_T(opline->op1.u.var).var.ptr == NULL) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
+ if (IS_VAR == IS_VAR && EX_T(opline->op1.u.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.u.var).var.ptr_ptr);
+ }
container = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
if (Z_TYPE_P(container) != IS_ARRAY) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {
if (IS_CV == IS_VAR && EX_T(opline->op1.u.var).var.ptr == NULL) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
+ if (IS_CV == IS_VAR && EX_T(opline->op1.u.var).var.ptr_ptr) {
+ PZVAL_LOCK(*EX_T(opline->op1.u.var).var.ptr_ptr);
+ }
container = _get_zval_ptr_cv(&opline->op1, EX(Ts), BP_VAR_R TSRMLS_CC);
if (Z_TYPE_P(container) != IS_ARRAY) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {