Skip to content

Commit 78a1d76

Browse files
committed
Reduce slow code size
1 parent e6e9bea commit 78a1d76

File tree

2 files changed

+152
-301
lines changed

2 files changed

+152
-301
lines changed

Zend/zend_vm_def.h

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1689,13 +1689,8 @@ ZEND_VM_HELPER(zend_fetch_static_prop_helper, CONST|TMPVAR|CV, UNUSED|CONST|VAR,
16891689
SAVE_OPLINE();
16901690

16911691
if (UNEXPECTED(zend_fetch_static_property_address(&prop, NULL, opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS, type, opline->extended_value & ZEND_FETCH_OBJ_FLAGS OPLINE_CC EXECUTE_DATA_CC) != SUCCESS)) {
1692-
if (EG(exception)) {
1693-
ZVAL_UNDEF(EX_VAR(opline->result.var));
1694-
HANDLE_EXCEPTION();
1695-
} else {
1696-
ZEND_ASSERT(type == BP_VAR_IS);
1697-
prop = &EG(uninitialized_zval);
1698-
}
1692+
ZEND_ASSERT(EG(exception) || (type == BP_VAR_IS));
1693+
prop = &EG(uninitialized_zval);
16991694
}
17001695

17011696
if (type == BP_VAR_R || type == BP_VAR_IS) {
@@ -2435,9 +2430,7 @@ ZEND_VM_C_LABEL(try_assign_dim_array):
24352430
if (OP2_TYPE == IS_UNUSED) {
24362431
zend_use_new_element_for_string();
24372432
FREE_UNFETCHED_OP_DATA();
2438-
FREE_OP1_VAR_PTR();
24392433
UNDEF_RESULT();
2440-
HANDLE_EXCEPTION();
24412434
} else {
24422435
dim = GET_OP2_ZVAL_PTR(BP_VAR_R);
24432436
value = GET_OP_DATA_ZVAL_PTR_DEREF(BP_VAR_R);
@@ -2448,14 +2441,13 @@ ZEND_VM_C_LABEL(try_assign_dim_array):
24482441
zend_property_info *error_prop;
24492442
if (Z_ISREF_P(orig_object_ptr) && (error_prop = zend_check_ref_array_assignable(Z_REF_P(orig_object_ptr))) != NULL) {
24502443
zend_throw_auto_init_in_ref_error(error_prop, "array");
2451-
FREE_UNFETCHED_OP2();
2444+
dim = GET_OP2_ZVAL_PTR(BP_VAR_R);
24522445
FREE_UNFETCHED_OP_DATA();
2453-
FREE_OP1_VAR_PTR();
24542446
UNDEF_RESULT();
2455-
HANDLE_EXCEPTION();
2447+
} else {
2448+
ZVAL_ARR(object_ptr, zend_new_array(8));
2449+
ZEND_VM_C_GOTO(try_assign_dim_array);
24562450
}
2457-
ZVAL_ARR(object_ptr, zend_new_array(8));
2458-
ZEND_VM_C_GOTO(try_assign_dim_array);
24592451
} else {
24602452
if (OP1_TYPE != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) {
24612453
zend_use_scalar_as_array();

0 commit comments

Comments
 (0)