Skip to content

Commit 7042ec6

Browse files
committed
Fix prop_info_offset calculation
Z_PROP_TABLE_OFFSET already gives us an index into a void* array. Thus, we only need to multiply by sizeof(void*).
1 parent add3e2b commit 7042ec6

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

ext/opcache/jit/zend_jit_ir.c

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14376,8 +14376,7 @@ static int zend_jit_fetch_obj(zend_jit_ctx *jit,
1437614376
if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
1437714377
ref = ir_CONST_ADDR(prop_info);
1437814378
} else {
14379-
int prop_info_offset =
14380-
(((Z_PROP_TABLE_OFFSET(prop_info) - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));
14379+
int prop_info_offset = Z_PROP_TABLE_OFFSET(prop_info) * sizeof(void*);
1438114380

1438214381
ref = ir_LOAD_A(ir_ADD_OFFSET(obj_ref, offsetof(zend_object, ce)));
1438314382
ref = ir_LOAD_A(ir_ADD_OFFSET(ref, offsetof(zend_class_entry, properties_info_table)));
@@ -14777,8 +14776,7 @@ static int zend_jit_assign_obj(zend_jit_ctx *jit,
1477714776
if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
1477814777
ref = ir_CONST_ADDR(prop_info);
1477914778
} else {
14780-
int prop_info_offset =
14781-
(((Z_PROP_TABLE_OFFSET(prop_info) - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));
14779+
int prop_info_offset = Z_PROP_TABLE_OFFSET(prop_info) * sizeof(void*);
1478214780

1478314781
ref = ir_LOAD_A(ir_ADD_OFFSET(obj_ref, offsetof(zend_object, ce)));
1478414782
ref = ir_LOAD_A(ir_ADD_OFFSET(ref, offsetof(zend_class_entry, properties_info_table)));
@@ -15133,8 +15131,7 @@ static int zend_jit_assign_obj_op(zend_jit_ctx *jit,
1513315131
if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
1513415132
ref = ir_CONST_ADDR(prop_info);
1513515133
} else {
15136-
int prop_info_offset =
15137-
(((Z_PROP_TABLE_OFFSET(prop_info) - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));
15134+
int prop_info_offset = Z_PROP_TABLE_OFFSET(prop_info) * sizeof(void*);
1513815135

1513915136
ref = ir_LOAD_A(ir_ADD_OFFSET(obj_ref, offsetof(zend_object, ce)));
1514015137
ref = ir_LOAD_A(ir_ADD_OFFSET(ref, offsetof(zend_class_entry, properties_info_table)));
@@ -15523,8 +15520,7 @@ static int zend_jit_incdec_obj(zend_jit_ctx *jit,
1552315520
if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
1552415521
ref = ir_CONST_ADDR(prop_info);
1552515522
} else {
15526-
int prop_info_offset =
15527-
(((Z_PROP_TABLE_OFFSET(prop_info) - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));
15523+
int prop_info_offset = Z_PROP_TABLE_OFFSET(prop_info) * sizeof(void*);
1552815524

1552915525
ref = ir_LOAD_A(ir_ADD_OFFSET(obj_ref, offsetof(zend_object, ce)));
1553015526
ref = ir_LOAD_A(ir_ADD_OFFSET(ref, offsetof(zend_class_entry, properties_info_table)));

0 commit comments

Comments
 (0)