@@ -5753,13 +5753,26 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_SPEC_CONST_CONST_HA
57535753
57545754try_fetch_list:
57555755 if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
5756- zval *value = zend_hash_index_find(Z_ARRVAL_P(container), Z_LVAL_P(EX_CONSTANT(opline->op2))) ;
5756+ zval *value;
57575757
5758- if (UNEXPECTED(value == NULL)) {
5759- zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, Z_LVAL_P(EX_CONSTANT(opline->op2)));
5760- ZVAL_NULL(EX_VAR(opline->result.var));
5758+ if (Z_TYPE_P(EX_CONSTANT(opline->op2)) == IS_LONG) {
5759+ value = zend_hash_index_find(Z_ARRVAL_P(container), Z_LVAL_P(EX_CONSTANT(opline->op2)));
5760+
5761+ if (UNEXPECTED(value == NULL)) {
5762+ zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, Z_LVAL_P(EX_CONSTANT(opline->op2)));
5763+ ZVAL_NULL(EX_VAR(opline->result.var));
5764+ } else {
5765+ ZVAL_COPY(EX_VAR(opline->result.var), value);
5766+ }
57615767 } else {
5762- ZVAL_COPY(EX_VAR(opline->result.var), value);
5768+ value = zend_hash_find(Z_ARRVAL_P(container), Z_STR_P(EX_CONSTANT(opline->op2)));
5769+
5770+ if (UNEXPECTED(value == NULL)) {
5771+ zend_error(E_NOTICE, "Undefined index: %s", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
5772+ ZVAL_NULL(EX_VAR(opline->result.var));
5773+ } else {
5774+ ZVAL_COPY(EX_VAR(opline->result.var), value);
5775+ }
57635776 }
57645777 } else if (IS_CONST != IS_CONST &&
57655778 UNEXPECTED(Z_TYPE_P(container) == IS_OBJECT) &&
@@ -37866,13 +37879,26 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_SPEC_CV_CONST_HANDL
3786637879
3786737880try_fetch_list:
3786837881 if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
37869- zval *value = zend_hash_index_find(Z_ARRVAL_P(container), Z_LVAL_P(EX_CONSTANT(opline->op2))) ;
37882+ zval *value;
3787037883
37871- if (UNEXPECTED(value == NULL)) {
37872- zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, Z_LVAL_P(EX_CONSTANT(opline->op2)));
37873- ZVAL_NULL(EX_VAR(opline->result.var));
37884+ if (Z_TYPE_P(EX_CONSTANT(opline->op2)) == IS_LONG) {
37885+ value = zend_hash_index_find(Z_ARRVAL_P(container), Z_LVAL_P(EX_CONSTANT(opline->op2)));
37886+
37887+ if (UNEXPECTED(value == NULL)) {
37888+ zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, Z_LVAL_P(EX_CONSTANT(opline->op2)));
37889+ ZVAL_NULL(EX_VAR(opline->result.var));
37890+ } else {
37891+ ZVAL_COPY(EX_VAR(opline->result.var), value);
37892+ }
3787437893 } else {
37875- ZVAL_COPY(EX_VAR(opline->result.var), value);
37894+ value = zend_hash_find(Z_ARRVAL_P(container), Z_STR_P(EX_CONSTANT(opline->op2)));
37895+
37896+ if (UNEXPECTED(value == NULL)) {
37897+ zend_error(E_NOTICE, "Undefined index: %s", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
37898+ ZVAL_NULL(EX_VAR(opline->result.var));
37899+ } else {
37900+ ZVAL_COPY(EX_VAR(opline->result.var), value);
37901+ }
3787637902 }
3787737903 } else if (IS_CV != IS_CONST &&
3787837904 UNEXPECTED(Z_TYPE_P(container) == IS_OBJECT) &&
@@ -51017,13 +51043,26 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_SPEC_TMPVAR_CONST_H
5101751043
5101851044try_fetch_list:
5101951045 if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
51020- zval *value = zend_hash_index_find(Z_ARRVAL_P(container), Z_LVAL_P(EX_CONSTANT(opline->op2))) ;
51046+ zval *value;
5102151047
51022- if (UNEXPECTED(value == NULL)) {
51023- zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, Z_LVAL_P(EX_CONSTANT(opline->op2)));
51024- ZVAL_NULL(EX_VAR(opline->result.var));
51048+ if (Z_TYPE_P(EX_CONSTANT(opline->op2)) == IS_LONG) {
51049+ value = zend_hash_index_find(Z_ARRVAL_P(container), Z_LVAL_P(EX_CONSTANT(opline->op2)));
51050+
51051+ if (UNEXPECTED(value == NULL)) {
51052+ zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, Z_LVAL_P(EX_CONSTANT(opline->op2)));
51053+ ZVAL_NULL(EX_VAR(opline->result.var));
51054+ } else {
51055+ ZVAL_COPY(EX_VAR(opline->result.var), value);
51056+ }
5102551057 } else {
51026- ZVAL_COPY(EX_VAR(opline->result.var), value);
51058+ value = zend_hash_find(Z_ARRVAL_P(container), Z_STR_P(EX_CONSTANT(opline->op2)));
51059+
51060+ if (UNEXPECTED(value == NULL)) {
51061+ zend_error(E_NOTICE, "Undefined index: %s", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
51062+ ZVAL_NULL(EX_VAR(opline->result.var));
51063+ } else {
51064+ ZVAL_COPY(EX_VAR(opline->result.var), value);
51065+ }
5102751066 }
5102851067 } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST &&
5102951068 UNEXPECTED(Z_TYPE_P(container) == IS_OBJECT) &&
0 commit comments