@@ -12518,12 +12518,18 @@ static int zend_jit_fetch_obj(dasm_State **Dst,
1251812518 |.cold_code
1251912519 |1:
1252012520 | test dword [FCARG2a + offsetof(zend_property_info, flags)], ZEND_ACC_READONLY
12521- | jz >2
12522- | IF_Z_TYPE FCARG1a, IS_OBJECT, >2
12521+ | jz >3
12522+ | IF_NOT_Z_TYPE FCARG1a, IS_OBJECT, >2
12523+ | GET_Z_PTR r0, FCARG1a
12524+ | GC_ADDREF r0
12525+ | SET_ZVAL_PTR res_addr, r0
12526+ | SET_ZVAL_TYPE_INFO res_addr, IS_OBJECT_EX
12527+ | jmp >9
12528+ |2:
1252312529 | mov FCARG1a, FCARG2a
1252412530 | EXT_CALL zend_readonly_property_modification_error, r0
1252512531 | jmp >9
12526- |2 :
12532+ |3 :
1252712533 if (flags == ZEND_FETCH_DIM_WRITE) {
1252812534 | SET_EX_OPLINE opline, r0
1252912535 | EXT_CALL zend_jit_check_array_promotion, r0
@@ -12564,6 +12570,11 @@ static int zend_jit_fetch_obj(dasm_State **Dst,
1256412570 }
1256512571 if (opline->opcode == ZEND_FETCH_OBJ_W && (prop_info->flags & ZEND_ACC_READONLY)) {
1256612572 | IF_NOT_TYPE dl, IS_OBJECT, >4
12573+ | GET_Z_PTR r0, FCARG1a + prop_info->offset
12574+ | GC_ADDREF r0
12575+ | SET_ZVAL_PTR res_addr, r0
12576+ | SET_ZVAL_TYPE_INFO res_addr, IS_OBJECT_EX
12577+ | jmp >9
1256712578 |.cold_code
1256812579 |4:
1256912580 | LOAD_ADDR FCARG1a, prop_info
0 commit comments