Skip to content

Commit 58c083d

Browse files
committed
simplification
1 parent 80b39b4 commit 58c083d

File tree

2 files changed

+16
-44
lines changed

2 files changed

+16
-44
lines changed

Zend/zend_vm_def.h

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4300,20 +4300,15 @@ ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR, NUM)
43004300
zval *varptr, *arg;
43014301

43024302
varptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
4303+
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
4304+
ZVAL_COPY_VALUE(arg, varptr);
43034305

43044306
if (EXPECTED(Z_ISREF_P(varptr))) {
4305-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
4306-
ZVAL_COPY_VALUE(arg, varptr);
4307-
43084307
ZEND_VM_NEXT_OPCODE();
43094308
}
43104309

43114310
SAVE_OPLINE();
43124311
zend_error(E_NOTICE, "Only variables should be passed by reference");
4313-
4314-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
4315-
ZVAL_COPY_VALUE(arg, varptr);
4316-
43174312
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
43184313
}
43194314

@@ -4330,12 +4325,11 @@ ZEND_VM_HANDLER(50, ZEND_SEND_VAR_NO_REF_EX, VAR, NUM, SPEC(QUICK_ARG))
43304325
}
43314326

43324327
varptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
4328+
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
4329+
ZVAL_COPY_VALUE(arg, varptr);
43334330

43344331
if (EXPECTED(Z_ISREF_P(varptr) ||
43354332
QUICK_ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) {
4336-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
4337-
ZVAL_COPY_VALUE(arg, varptr);
4338-
43394333
ZEND_VM_NEXT_OPCODE();
43404334
}
43414335
} else {
@@ -4344,22 +4338,17 @@ ZEND_VM_HANDLER(50, ZEND_SEND_VAR_NO_REF_EX, VAR, NUM, SPEC(QUICK_ARG))
43444338
}
43454339

43464340
varptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
4341+
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
4342+
ZVAL_COPY_VALUE(arg, varptr);
43474343

43484344
if (EXPECTED(Z_ISREF_P(varptr) ||
43494345
ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) {
4350-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
4351-
ZVAL_COPY_VALUE(arg, varptr);
4352-
43534346
ZEND_VM_NEXT_OPCODE();
43544347
}
43554348
}
43564349

43574350
SAVE_OPLINE();
43584351
zend_error(E_NOTICE, "Only variables should be passed by reference");
4359-
4360-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
4361-
ZVAL_COPY_VALUE(arg, varptr);
4362-
43634352
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
43644353
}
43654354

Zend/zend_vm_execute.h

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15601,20 +15601,15 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDL
1560115601
zval *varptr, *arg;
1560215602

1560315603
varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
15604+
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15605+
ZVAL_COPY_VALUE(arg, varptr);
1560415606

1560515607
if (EXPECTED(Z_ISREF_P(varptr))) {
15606-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15607-
ZVAL_COPY_VALUE(arg, varptr);
15608-
1560915608
ZEND_VM_NEXT_OPCODE();
1561015609
}
1561115610

1561215611
SAVE_OPLINE();
1561315612
zend_error(E_NOTICE, "Only variables should be passed by reference");
15614-
15615-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15616-
ZVAL_COPY_VALUE(arg, varptr);
15617-
1561815613
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
1561915614
}
1562015615

@@ -15631,12 +15626,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_HA
1563115626
}
1563215627

1563315628
varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
15629+
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15630+
ZVAL_COPY_VALUE(arg, varptr);
1563415631

1563515632
if (EXPECTED(Z_ISREF_P(varptr) ||
1563615633
QUICK_ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) {
15637-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15638-
ZVAL_COPY_VALUE(arg, varptr);
15639-
1564015634
ZEND_VM_NEXT_OPCODE();
1564115635
}
1564215636
} else {
@@ -15645,22 +15639,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_HA
1564515639
}
1564615640

1564715641
varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
15642+
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15643+
ZVAL_COPY_VALUE(arg, varptr);
1564815644

1564915645
if (EXPECTED(Z_ISREF_P(varptr) ||
1565015646
ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) {
15651-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15652-
ZVAL_COPY_VALUE(arg, varptr);
15653-
1565415647
ZEND_VM_NEXT_OPCODE();
1565515648
}
1565615649
}
1565715650

1565815651
SAVE_OPLINE();
1565915652
zend_error(E_NOTICE, "Only variables should be passed by reference");
15660-
15661-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15662-
ZVAL_COPY_VALUE(arg, varptr);
15663-
1566415653
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
1566515654
}
1566615655

@@ -15677,12 +15666,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QU
1567715666
}
1567815667

1567915668
varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
15669+
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15670+
ZVAL_COPY_VALUE(arg, varptr);
1568015671

1568115672
if (EXPECTED(Z_ISREF_P(varptr) ||
1568215673
QUICK_ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) {
15683-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15684-
ZVAL_COPY_VALUE(arg, varptr);
15685-
1568615674
ZEND_VM_NEXT_OPCODE();
1568715675
}
1568815676
} else {
@@ -15691,22 +15679,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QU
1569115679
}
1569215680

1569315681
varptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
15682+
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15683+
ZVAL_COPY_VALUE(arg, varptr);
1569415684

1569515685
if (EXPECTED(Z_ISREF_P(varptr) ||
1569615686
ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) {
15697-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15698-
ZVAL_COPY_VALUE(arg, varptr);
15699-
1570015687
ZEND_VM_NEXT_OPCODE();
1570115688
}
1570215689
}
1570315690

1570415691
SAVE_OPLINE();
1570515692
zend_error(E_NOTICE, "Only variables should be passed by reference");
15706-
15707-
arg = ZEND_CALL_VAR(EX(call), opline->result.var);
15708-
ZVAL_COPY_VALUE(arg, varptr);
15709-
1571015693
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
1571115694
}
1571215695

0 commit comments

Comments
 (0)