summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
authorSterling Hughes <sterling@php.net>2003-05-28 20:42:40 +0000
committerSterling Hughes <sterling@php.net>2003-05-28 20:42:40 +0000
commit88b2f89eee72964b3dbb6165f944b4590263094c (patch)
treebe89fbba8688e1b2694133a7d042a99de858d774 /Zend/zend_compile.c
parent8effacb1441aa2285a293de379221cd774751f7e (diff)
downloadphp-git-88b2f89eee72964b3dbb6165f944b4590263094c.tar.gz
Cache function call lookups with loops (store in a temporary variable on the
result opline). Assuming lazy concensus on message that GeorgeS sent to the list last week
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 9d1db6ec52..65b08409e9 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1242,6 +1242,9 @@ void zend_do_begin_dynamic_function_call(znode *function_name TSRMLS_DC)
opline->opcode = ZEND_INIT_FCALL_BY_NAME;
opline->op2 = *function_name;
opline->extended_value = 0;
+ opline->result.u.var = get_temporary_variable(CG(active_op_array));
+ opline->result.op_type = IS_TMP_VAR;
+
SET_UNUSED(opline->op1);
zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(zend_function *));