Skip to content

Commit 199ba86

Browse files
committed
De-duplicate subject free branches
Since we now have the result at every step, we can join the free branch.
1 parent 29a4918 commit 199ba86

File tree

1 file changed

+3
-18
lines changed

1 file changed

+3
-18
lines changed

Zend/zend_compile.c

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6763,14 +6763,9 @@ static void zend_pm_compile_or(zend_ast *ast, znode *result, znode *expr_node, b
67636763

67646764
zend_pm_label_set_next(context, true_label);
67656765
if (consume_expr) {
6766-
zend_emit_op(NULL, ZEND_FREE, expr_node, NULL);
6767-
uint32_t end_label = zend_emit_jump(0);
6768-
67696766
zend_pm_label_set_next(context, false_label);
67706767
zend_emit_op(NULL, ZEND_FREE, expr_node, NULL);
6771-
zend_emit_jump(false_opnum);
6772-
6773-
zend_update_jump_target_to_next(end_label);
6768+
zend_pm_emit_jmpz_ex(result, false_opnum);
67746769
}
67756770

67766771
context->inside_or_pattern = false;
@@ -6788,14 +6783,9 @@ static void zend_pm_compile_and(zend_ast *ast, znode *result, znode *expr_node,
67886783
}
67896784

67906785
if (consume_expr) {
6791-
zend_emit_op(NULL, ZEND_FREE, expr_node, NULL);
6792-
uint32_t jmp_end = zend_emit_jump(0);
6793-
67946786
zend_pm_label_set_next(context, false_label);
67956787
zend_emit_op(NULL, ZEND_FREE, expr_node, NULL);
6796-
zend_emit_jump(false_opnum);
6797-
6798-
zend_update_jump_target_to_next(jmp_end);
6788+
zend_pm_emit_jmpz_ex(result, false_opnum);
67996789
}
68006790
}
68016791

@@ -6931,14 +6921,9 @@ static void zend_pm_compile_container(
69316921
}
69326922

69336923
if (consume_expr) {
6934-
zend_emit_op(NULL, ZEND_FREE, expr_node, NULL);
6935-
uint32_t jmp_end = zend_emit_jump(0);
6936-
69376924
zend_pm_label_set_next(context, false_label);
69386925
zend_emit_op(NULL, ZEND_FREE, expr_node, NULL);
6939-
zend_emit_jump(false_opnum);
6940-
6941-
zend_update_jump_target_to_next(jmp_end);
6926+
zend_pm_emit_jmpz_ex(result, false_opnum);
69426927
}
69436928

69446929
if (has_implicit && has_explicit) {

0 commit comments

Comments
 (0)