SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (IS_VAR != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = opline->op2.zv;
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
break;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (IS_VAR != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
zval_dtor(free_op2.var);
break;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (IS_VAR != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
zval_ptr_dtor_nogc(free_op2.var);
break;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (IS_VAR != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
break;
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(TSRMLS_C);
if (IS_UNUSED != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = opline->op2.zv;
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
break;
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(TSRMLS_C);
if (IS_UNUSED != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
zval_dtor(free_op2.var);
break;
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(TSRMLS_C);
if (IS_UNUSED != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
zval_ptr_dtor_nogc(free_op2.var);
break;
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(TSRMLS_C);
if (IS_UNUSED != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
break;
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var TSRMLS_CC);
if (IS_CV != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = opline->op2.zv;
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
break;
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var TSRMLS_CC);
if (IS_CV != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
zval_dtor(free_op2.var);
break;
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var TSRMLS_CC);
if (IS_CV != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
zval_ptr_dtor_nogc(free_op2.var);
break;
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var TSRMLS_CC);
if (IS_CV != IS_UNUSED) {
- SEPARATE_ZVAL_IF_NOT_REF(container);
+ ZVAL_DEREF(container);
+ SEPARATE_ZVAL_NOREF(container);
}
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
-container_again:
switch (Z_TYPE_P(container)) {
case IS_ARRAY: {
HashTable *ht = Z_ARRVAL_P(container);
case IS_STR_OFFSET:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
- case IS_REFERENCE:
- container = Z_REFVAL_P(container);
- goto container_again;
- break;
default:
break;