if (EG(active_symbol_table)) {
ret = zend_hash_find(EG(active_symbol_table), cv);
if (ret) {
- ZEND_ASSERT(Z_TYPE_P(ret) == IS_INDIRECT);
- ZVAL_INDIRECT(ptr, Z_INDIRECT_P(ret));
- return Z_INDIRECT_P(ptr);
+ ZVAL_INDIRECT(ptr, ret);
+ return ret;
}
}
/* break missing intentionally */
case BP_VAR_W:
if (EG(active_symbol_table)) {
- zval zv;
- ZVAL_COPY_VALUE(ptr, &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, ptr);
- zend_hash_update(EG(active_symbol_table), cv, &zv);
+ ret = zend_hash_update(EG(active_symbol_table), cv, ret);
+ ZVAL_INDIRECT(ptr, ret);
} else {
ZVAL_NULL(ptr);
+ ret = ptr;
}
- ret = ptr;
break;
}
return ret;
if (EG(active_symbol_table)) {
ret = zend_hash_find(EG(active_symbol_table), cv);
if (ret) {
- ZEND_ASSERT(Z_TYPE_P(ret) == IS_INDIRECT);
- ZVAL_INDIRECT(ptr, Z_INDIRECT_P(ret));
- return Z_INDIRECT_P(ptr);
+ ZVAL_INDIRECT(ptr, ret);
+ return ret;
}
}
if (EG(active_symbol_table)) {
ret = zend_hash_find(EG(active_symbol_table), cv);
if (ret) {
- ZEND_ASSERT(Z_TYPE_P(ret) == IS_INDIRECT);
- ZVAL_INDIRECT(ptr, Z_INDIRECT_P(ret));
- return Z_INDIRECT_P(ptr);
+ ZVAL_INDIRECT(ptr, ret);
+ return ret;
}
}
if (EG(active_symbol_table)) {
ret = zend_hash_find(EG(active_symbol_table), cv);
if (ret) {
- ZEND_ASSERT(Z_TYPE_P(ret) == IS_INDIRECT);
- ZVAL_INDIRECT(ptr, Z_INDIRECT_P(ret));
- return Z_INDIRECT_P(ptr);
+ ZVAL_INDIRECT(ptr, ret);
+ return ret;
}
}
if (EG(active_symbol_table)) {
ret = zend_hash_find(EG(active_symbol_table), cv);
if (ret) {
- ZEND_ASSERT(Z_TYPE_P(ret) == IS_INDIRECT);
- ZVAL_INDIRECT(ptr, Z_INDIRECT_P(ret));
- return Z_INDIRECT_P(ptr);
- } else {
- zval zv;
- ZVAL_COPY_VALUE(ptr, &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, ptr);
- zend_hash_update(EG(active_symbol_table), cv, &zv);
- zend_error(E_NOTICE, "Undefined variable: %s", cv->val);
- return ptr;
+ ZVAL_INDIRECT(ptr, ret);
+ return ret;
}
+ ret = zend_hash_update(EG(active_symbol_table), cv, &EG(uninitialized_zval));
+ ZVAL_INDIRECT(ptr, ret);
+ zend_error(E_NOTICE, "Undefined variable: %s", cv->val);
+ return ret;
} else {
ZVAL_NULL(ptr);
zend_error(E_NOTICE, "Undefined variable: %s", cv->val);
if (EG(active_symbol_table)) {
ret = zend_hash_find(EG(active_symbol_table), cv);
if (ret) {
- ZEND_ASSERT(Z_TYPE_P(ret) == IS_INDIRECT);
- ZVAL_INDIRECT(ptr, Z_INDIRECT_P(ret));
- return Z_INDIRECT_P(ptr);
- } else {
- zval zv;
- ZVAL_COPY_VALUE(ptr, &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, ptr);
- zend_hash_update(EG(active_symbol_table), cv, &zv);
- return ptr;
+ ZVAL_INDIRECT(ptr, ret);
+ return ret;
}
+ ret = zend_hash_update(EG(active_symbol_table), cv, &EG(uninitialized_zval));
+ ZVAL_INDIRECT(ptr, ret);
+ return ret;
} else {
ZVAL_NULL(ptr);
return ptr;
zend_hash_apply(EG(active_symbol_table), (apply_func_t) zend_check_symbol TSRMLS_CC); \
}
-static int zend_check_symbol(zval *zv TSRMLS_DC)
+static int zend_check_symbol(zval **pz TSRMLS_DC)
{
- if (Z_TYPE_P(zv) > 17) {
- fprintf(stderr, "Warning! %x has invalid type!\n", *zv);
+ if (Z_TYPE_PP(pz) > 9) {
+ fprintf(stderr, "Warning! %x has invalid type!\n", *pz);
/* See http://support.microsoft.com/kb/190351 */
#ifdef PHP_WIN32
fflush(stderr);
#endif
- } else if (Z_TYPE_P(zv) == IS_ARRAY) {
- zend_hash_apply(Z_ARRVAL_P(zv), (apply_func_t) zend_check_symbol TSRMLS_CC);
- } else if (Z_TYPE_P(zv) == IS_OBJECT) {
+ } else if (Z_TYPE_PP(pz) == IS_ARRAY) {
+ zend_hash_apply(Z_ARRVAL_PP(pz), (apply_func_t) zend_check_symbol TSRMLS_CC);
+ } else if (Z_TYPE_PP(pz) == IS_OBJECT) {
/* OBJ-TBI - doesn't support new object model! */
- zend_hash_apply(Z_OBJPROP_P(zv), (apply_func_t) zend_check_symbol TSRMLS_CC);
+ zend_hash_apply(Z_OBJPROP_PP(pz), (apply_func_t) zend_check_symbol TSRMLS_CC);
}
return 0;
if (!EG(active_symbol_table)) {
ZVAL_COPY(EX_VAR_NUM(op_array->this_var), &EG(This));
} else {
- zval zv;
ZVAL_COPY(EX_VAR_NUM(op_array->this_var), &EG(This));
- ZVAL_INDIRECT(&zv, EX_VAR_NUM(op_array->this_var));
- zend_hash_str_add(EG(active_symbol_table), "this", sizeof("this")-1, &zv);
+ zval *zv = zend_hash_str_add(EG(active_symbol_table), "this", sizeof("this")-1, EX_VAR(op_array->this_var));
+ if (zv) {
+ ZVAL_INDIRECT(EX_VAR_NUM(op_array->this_var), zv);
+ }
}
}
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_CONST != IS_TMP_VAR) {
+
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_CONST == IS_VAR && !0) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_CONST != IS_TMP_VAR) {
-
- }
- break;
- case ZEND_FETCH_LOCAL:
-
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_CONST == IS_VAR && !0) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_CONST != IS_CONST && varname == &tmp) {
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_CONST != IS_TMP_VAR) {
+
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_CONST == IS_VAR && !0) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_CONST != IS_TMP_VAR) {
-
- }
- break;
- case ZEND_FETCH_LOCAL:
-
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_CONST == IS_VAR && !0) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_CONST != IS_CONST && varname == &tmp) {
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_CONST != IS_TMP_VAR) {
+
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_CONST == IS_VAR && !0) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_CONST != IS_TMP_VAR) {
-
- }
- break;
- case ZEND_FETCH_LOCAL:
-
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_CONST == IS_VAR && !0) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_CONST != IS_CONST && varname == &tmp) {
}
ZVAL_OBJ(EX_VAR_NUM(opline->op2.var), EG(exception));
if (EG(active_symbol_table)) {
- zval zv;
zend_string *cv = CV_DEF_OF(opline->op2.var);
- ZVAL_INDIRECT(&zv, EX_VAR_NUM(opline->op2.var));
- zend_hash_update(EG(active_symbol_table), cv, &zv);
+ zval *zv = zend_hash_update(EG(active_symbol_table), cv, EX_VAR_NUM(opline->op2.var));
+ ZVAL_INDIRECT(EX_VAR_NUM(opline->op2.var), zv);
}
if (UNEXPECTED(EG(exception) != exception)) {
EG(exception)->gc.refcount++;
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_TMP_VAR != IS_TMP_VAR) {
+ zval_dtor(free_op1.var);
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+ zval_dtor(free_op1.var);
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_TMP_VAR == IS_VAR && !1) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_TMP_VAR != IS_TMP_VAR) {
- zval_dtor(free_op1.var);
- }
- break;
- case ZEND_FETCH_LOCAL:
- zval_dtor(free_op1.var);
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_TMP_VAR == IS_VAR && !1) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_TMP_VAR != IS_CONST && varname == &tmp) {
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_TMP_VAR != IS_TMP_VAR) {
+ zval_dtor(free_op1.var);
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+ zval_dtor(free_op1.var);
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_TMP_VAR == IS_VAR && !1) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_TMP_VAR != IS_TMP_VAR) {
- zval_dtor(free_op1.var);
- }
- break;
- case ZEND_FETCH_LOCAL:
- zval_dtor(free_op1.var);
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_TMP_VAR == IS_VAR && !1) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_TMP_VAR != IS_CONST && varname == &tmp) {
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_TMP_VAR != IS_TMP_VAR) {
+ zval_dtor(free_op1.var);
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+ zval_dtor(free_op1.var);
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_TMP_VAR == IS_VAR && !1) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_TMP_VAR != IS_TMP_VAR) {
- zval_dtor(free_op1.var);
- }
- break;
- case ZEND_FETCH_LOCAL:
- zval_dtor(free_op1.var);
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_TMP_VAR == IS_VAR && !1) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_TMP_VAR != IS_CONST && varname == &tmp) {
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_VAR != IS_TMP_VAR) {
+ zval_ptr_dtor_nogc(free_op1.var);
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+ zval_ptr_dtor_nogc(free_op1.var);
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_VAR == IS_VAR && !(free_op1.var != NULL)) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_VAR != IS_TMP_VAR) {
- zval_ptr_dtor_nogc(free_op1.var);
- }
- break;
- case ZEND_FETCH_LOCAL:
- zval_ptr_dtor_nogc(free_op1.var);
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_VAR == IS_VAR && !(free_op1.var != NULL)) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_VAR != IS_CONST && varname == &tmp) {
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_VAR != IS_TMP_VAR) {
+ zval_ptr_dtor_nogc(free_op1.var);
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+ zval_ptr_dtor_nogc(free_op1.var);
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_VAR == IS_VAR && !(free_op1.var != NULL)) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_VAR != IS_TMP_VAR) {
- zval_ptr_dtor_nogc(free_op1.var);
- }
- break;
- case ZEND_FETCH_LOCAL:
- zval_ptr_dtor_nogc(free_op1.var);
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_VAR == IS_VAR && !(free_op1.var != NULL)) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_VAR != IS_CONST && varname == &tmp) {
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_VAR != IS_TMP_VAR) {
+ zval_ptr_dtor_nogc(free_op1.var);
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+ zval_ptr_dtor_nogc(free_op1.var);
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_VAR == IS_VAR && !(free_op1.var != NULL)) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_VAR != IS_TMP_VAR) {
- zval_ptr_dtor_nogc(free_op1.var);
- }
- break;
- case ZEND_FETCH_LOCAL:
- zval_ptr_dtor_nogc(free_op1.var);
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_VAR == IS_VAR && !(free_op1.var != NULL)) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_VAR != IS_CONST && varname == &tmp) {
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_CV != IS_TMP_VAR) {
+
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_CV == IS_VAR && !0) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_CV != IS_TMP_VAR) {
-
- }
- break;
- case ZEND_FETCH_LOCAL:
-
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_CV == IS_VAR && !0) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_CV != IS_CONST && varname == &tmp) {
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_CV != IS_TMP_VAR) {
+
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_CV == IS_VAR && !0) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_CV != IS_TMP_VAR) {
-
- }
- break;
- case ZEND_FETCH_LOCAL:
-
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_CV == IS_VAR && !0) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_CV != IS_CONST && varname == &tmp) {
case BP_VAR_RW:
zend_error(E_NOTICE,"Undefined variable: %s", Z_STRVAL_P(varname));
/* break missing intentionally */
- case BP_VAR_W: {
- zval zv;
- ZVAL_COPY_VALUE(EX_VAR(opline->result.var), &EG(uninitialized_zval));
- ZVAL_INDIRECT(&zv, EX_VAR(opline->result.var));
- zend_hash_update(target_symbol_table, Z_STR_P(varname), &zv);
- }
+ case BP_VAR_W:
+ retval = zend_hash_update(target_symbol_table, Z_STR_P(varname), &EG(uninitialized_zval));
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
+ switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
+ case ZEND_FETCH_GLOBAL:
+ if (IS_CV != IS_TMP_VAR) {
+
+ }
+ break;
+ case ZEND_FETCH_LOCAL:
+
+ break;
+ case ZEND_FETCH_STATIC:
+ zval_update_constant(retval, (void*) 1 TSRMLS_CC);
+ break;
+ case ZEND_FETCH_GLOBAL_LOCK:
+ if (IS_CV == IS_VAR && !0) {
+ Z_ADDREF_P(EX_VAR(opline->op1.var));
+ }
+ break;
+ }
}
zval_dtor(&tmp_varname);
}
- if (retval && EXPECTED(Z_TYPE_P(retval) == IS_INDIRECT)) {
- retval = Z_INDIRECT_P(retval);
- }
-
- switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
- case ZEND_FETCH_GLOBAL:
- if (IS_CV != IS_TMP_VAR) {
-
- }
- break;
- case ZEND_FETCH_LOCAL:
-
- break;
- case ZEND_FETCH_STATIC:
- if (retval) {
- zval_update_constant(retval, (void*) 1 TSRMLS_CC);
- }
- break;
- case ZEND_FETCH_GLOBAL_LOCK:
- if (IS_CV == IS_VAR && !0) {
- Z_ADDREF_P(EX_VAR(opline->op1.var));
- }
- break;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
}
if (EXPECTED(retval != NULL)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
if ((value = zend_hash_find(target_symbol_table, Z_STR_P(varname))) == NULL) {
isset = 0;
}
- if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) {
- value = Z_INDIRECT_P(value);
- }
}
if (IS_CV != IS_CONST && varname == &tmp) {