summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-05-20 22:51:45 +0300
committerDmitry Stogov <dmitry@zend.com>2015-05-20 22:51:45 +0300
commitd6bcf2bf2e90eeda9155e70d757cc76412835925 (patch)
tree21f062d681187df389d227f84a9f0947999b70b4
parente57aceed424db0b57e8e68d434cb7d624d99de27 (diff)
downloadphp-git-d6bcf2bf2e90eeda9155e70d757cc76412835925.tar.gz
Micro optimization
-rw-r--r--Zend/zend_vm_def.h9
-rw-r--r--Zend/zend_vm_execute.h36
2 files changed, 20 insertions, 25 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 5d6b128cb3..a1d308e442 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -3924,15 +3924,14 @@ ZEND_VM_HANDLER(62, ZEND_RETURN, CONST|TMP|VAR|CV, ANY)
if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) {
SAVE_OPLINE();
retval_ptr = GET_OP1_UNDEF_CV(retval_ptr, BP_VAR_R);
- CHECK_EXCEPTION();
- }
-
- if (!EX(return_value)) {
+ if (EX(return_value)) {
+ ZVAL_NULL(EX(return_value));
+ }
+ } else if (!EX(return_value)) {
if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_TMP_VAR ) {
if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) {
SAVE_OPLINE();
zval_dtor_func_for_ptr(Z_COUNTED_P(free_op1));
- CHECK_EXCEPTION();
}
}
} else {
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index e98f9dbf15..9da4546b78 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -3252,15 +3252,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_CONST_HANDLER(ZEND
if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) {
SAVE_OPLINE();
retval_ptr = GET_OP1_UNDEF_CV(retval_ptr, BP_VAR_R);
- CHECK_EXCEPTION();
- }
-
- if (!EX(return_value)) {
+ if (EX(return_value)) {
+ ZVAL_NULL(EX(return_value));
+ }
+ } else if (!EX(return_value)) {
if (IS_CONST == IS_VAR || IS_CONST == IS_TMP_VAR ) {
if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) {
SAVE_OPLINE();
zval_dtor_func_for_ptr(Z_COUNTED_P(free_op1));
- CHECK_EXCEPTION();
}
}
} else {
@@ -11642,15 +11641,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_O
if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) {
SAVE_OPLINE();
retval_ptr = GET_OP1_UNDEF_CV(retval_ptr, BP_VAR_R);
- CHECK_EXCEPTION();
- }
-
- if (!EX(return_value)) {
+ if (EX(return_value)) {
+ ZVAL_NULL(EX(return_value));
+ }
+ } else if (!EX(return_value)) {
if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_TMP_VAR ) {
if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) {
SAVE_OPLINE();
zval_dtor_func_for_ptr(Z_COUNTED_P(free_op1));
- CHECK_EXCEPTION();
}
}
} else {
@@ -14814,15 +14812,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_O
if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) {
SAVE_OPLINE();
retval_ptr = GET_OP1_UNDEF_CV(retval_ptr, BP_VAR_R);
- CHECK_EXCEPTION();
- }
-
- if (!EX(return_value)) {
+ if (EX(return_value)) {
+ ZVAL_NULL(EX(return_value));
+ }
+ } else if (!EX(return_value)) {
if (IS_VAR == IS_VAR || IS_VAR == IS_TMP_VAR ) {
if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) {
SAVE_OPLINE();
zval_dtor_func_for_ptr(Z_COUNTED_P(free_op1));
- CHECK_EXCEPTION();
}
}
} else {
@@ -28723,15 +28720,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_CV_HANDLER(ZEND_OP
if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) {
SAVE_OPLINE();
retval_ptr = GET_OP1_UNDEF_CV(retval_ptr, BP_VAR_R);
- CHECK_EXCEPTION();
- }
-
- if (!EX(return_value)) {
+ if (EX(return_value)) {
+ ZVAL_NULL(EX(return_value));
+ }
+ } else if (!EX(return_value)) {
if (IS_CV == IS_VAR || IS_CV == IS_TMP_VAR ) {
if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) {
SAVE_OPLINE();
zval_dtor_func_for_ptr(Z_COUNTED_P(free_op1));
- CHECK_EXCEPTION();
}
}
} else {