ZEND_VM_C_LABEL(try_fetch_list):
if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- zval *value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), EX_CONSTANT(opline->op2), OP2_TYPE, BP_VAR_R);
+ zval *value = zend_hash_index_find(Z_ARRVAL_P(container), Z_LVAL_P(EX_CONSTANT(opline->op2)));
- ZVAL_COPY(EX_VAR(opline->result.var), value);
+ if (UNEXPECTED(value == NULL)) {
+ zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, Z_LVAL_P(EX_CONSTANT(opline->op2)));
+ ZVAL_NULL(EX_VAR(opline->result.var));
+ } else {
+ ZVAL_COPY(EX_VAR(opline->result.var), value);
+ }
} else if (UNEXPECTED(Z_TYPE_P(container) == IS_OBJECT) &&
EXPECTED(Z_OBJ_HT_P(container)->read_dimension)) {
zval *result = EX_VAR(opline->result.var);
try_fetch_list:
if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- zval *value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), EX_CONSTANT(opline->op2), IS_CONST, BP_VAR_R);
+ zval *value = zend_hash_index_find(Z_ARRVAL_P(container), Z_LVAL_P(EX_CONSTANT(opline->op2)));
- ZVAL_COPY(EX_VAR(opline->result.var), value);
+ if (UNEXPECTED(value == NULL)) {
+ zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, Z_LVAL_P(EX_CONSTANT(opline->op2)));
+ ZVAL_NULL(EX_VAR(opline->result.var));
+ } else {
+ ZVAL_COPY(EX_VAR(opline->result.var), value);
+ }
} else if (UNEXPECTED(Z_TYPE_P(container) == IS_OBJECT) &&
EXPECTED(Z_OBJ_HT_P(container)->read_dimension)) {
zval *result = EX_VAR(opline->result.var);
try_fetch_list:
if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- zval *value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), EX_CONSTANT(opline->op2), IS_CONST, BP_VAR_R);
+ zval *value = zend_hash_index_find(Z_ARRVAL_P(container), Z_LVAL_P(EX_CONSTANT(opline->op2)));
- ZVAL_COPY(EX_VAR(opline->result.var), value);
+ if (UNEXPECTED(value == NULL)) {
+ zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, Z_LVAL_P(EX_CONSTANT(opline->op2)));
+ ZVAL_NULL(EX_VAR(opline->result.var));
+ } else {
+ ZVAL_COPY(EX_VAR(opline->result.var), value);
+ }
} else if (UNEXPECTED(Z_TYPE_P(container) == IS_OBJECT) &&
EXPECTED(Z_OBJ_HT_P(container)->read_dimension)) {
zval *result = EX_VAR(opline->result.var);
try_fetch_list:
if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
- zval *value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), EX_CONSTANT(opline->op2), IS_CONST, BP_VAR_R);
+ zval *value = zend_hash_index_find(Z_ARRVAL_P(container), Z_LVAL_P(EX_CONSTANT(opline->op2)));
- ZVAL_COPY(EX_VAR(opline->result.var), value);
+ if (UNEXPECTED(value == NULL)) {
+ zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, Z_LVAL_P(EX_CONSTANT(opline->op2)));
+ ZVAL_NULL(EX_VAR(opline->result.var));
+ } else {
+ ZVAL_COPY(EX_VAR(opline->result.var), value);
+ }
} else if (UNEXPECTED(Z_TYPE_P(container) == IS_OBJECT) &&
EXPECTED(Z_OBJ_HT_P(container)->read_dimension)) {
zval *result = EX_VAR(opline->result.var);