@@ -14376,7 +14376,8 @@ static int zend_jit_fetch_obj(zend_jit_ctx *jit,
14376
14376
if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
14377
14377
ref = ir_CONST_ADDR(prop_info);
14378
14378
} else {
14379
- int prop_info_offset = Z_PROP_TABLE_OFFSET(prop_info) * sizeof(void*);
14379
+ int prop_info_offset =
14380
+ (((prop_info->offset - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));
14380
14381
14381
14382
ref = ir_LOAD_A(ir_ADD_OFFSET(obj_ref, offsetof(zend_object, ce)));
14382
14383
ref = ir_LOAD_A(ir_ADD_OFFSET(ref, offsetof(zend_class_entry, properties_info_table)));
@@ -14776,7 +14777,8 @@ static int zend_jit_assign_obj(zend_jit_ctx *jit,
14776
14777
if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
14777
14778
ref = ir_CONST_ADDR(prop_info);
14778
14779
} else {
14779
- int prop_info_offset = Z_PROP_TABLE_OFFSET(prop_info) * sizeof(void*);
14780
+ int prop_info_offset =
14781
+ (((prop_info->offset - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));
14780
14782
14781
14783
ref = ir_LOAD_A(ir_ADD_OFFSET(obj_ref, offsetof(zend_object, ce)));
14782
14784
ref = ir_LOAD_A(ir_ADD_OFFSET(ref, offsetof(zend_class_entry, properties_info_table)));
@@ -15131,7 +15133,8 @@ static int zend_jit_assign_obj_op(zend_jit_ctx *jit,
15131
15133
if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
15132
15134
ref = ir_CONST_ADDR(prop_info);
15133
15135
} else {
15134
- int prop_info_offset = Z_PROP_TABLE_OFFSET(prop_info) * sizeof(void*);
15136
+ int prop_info_offset =
15137
+ (((prop_info->offset - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));
15135
15138
15136
15139
ref = ir_LOAD_A(ir_ADD_OFFSET(obj_ref, offsetof(zend_object, ce)));
15137
15140
ref = ir_LOAD_A(ir_ADD_OFFSET(ref, offsetof(zend_class_entry, properties_info_table)));
@@ -15520,7 +15523,8 @@ static int zend_jit_incdec_obj(zend_jit_ctx *jit,
15520
15523
if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
15521
15524
ref = ir_CONST_ADDR(prop_info);
15522
15525
} else {
15523
- int prop_info_offset = Z_PROP_TABLE_OFFSET(prop_info) * sizeof(void*);
15526
+ int prop_info_offset =
15527
+ (((prop_info->offset - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));
15524
15528
15525
15529
ref = ir_LOAD_A(ir_ADD_OFFSET(obj_ref, offsetof(zend_object, ce)));
15526
15530
ref = ir_LOAD_A(ir_ADD_OFFSET(ref, offsetof(zend_class_entry, properties_info_table)));
0 commit comments