summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-07-08 17:44:54 +0800
committerXinchen Hui <laruence@php.net>2015-07-08 17:44:54 +0800
commit249915f938f6880b68ab6c6a47952c509dc51604 (patch)
treeab5f065017cfd3e49776ed12501c02ba48c7a5e8
parent3b5876916dca1ce1db7533a0848b7f912101e07b (diff)
downloadphp-git-249915f938f6880b68ab6c6a47952c509dc51604.tar.gz
Add comment to explaining the new check
-rw-r--r--ext/opcache/Optimizer/optimize_temp_vars_5.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ext/opcache/Optimizer/optimize_temp_vars_5.c b/ext/opcache/Optimizer/optimize_temp_vars_5.c
index de170d2295..f60f61cb45 100644
--- a/ext/opcache/Optimizer/optimize_temp_vars_5.c
+++ b/ext/opcache/Optimizer/optimize_temp_vars_5.c
@@ -152,6 +152,9 @@ void optimize_temporary_variables(zend_op_array *op_array, zend_optimizer_ctx *c
currT = VAR_NUM(ZEND_RESULT(opline).var) - offset;
if (valid_T[currT]) {
if (start_of_T[currT] == opline) {
+ /* ZEND_FAST_CALL can not share temporary var with others
+ * since the fast_var could also be set by ZEND_HANDLE_EXCEPTION
+ * which could be ahead of it */
if (opline->opcode != ZEND_FAST_CALL) {
taken_T[map_T[currT]] = 0;
}