Re: [ZEND-ENGINE-CVS] cvs: Zend / zend.c zend_execute.c zend_execute.h zend_execute_API.c
| From: | Derick Rethans | Date: | Mon, 02 Sep 2002 09:42:43 +0000 |
| Subject: | Re: [ZEND-ENGINE-CVS] cvs: Zend / zend.c zend_execute.c zend_execute.h zend_execute_API.c | ||
| References: | 1 | Groups: | php.zend-engine.cvs |
| Request: | Send a blank email to php-zend-engine-cvs+get-378@lists.php.net to get a copy of this message | ||
On Sat, 24 Aug 2002, Thies C. Arntzen wrote:
> thies Sat Aug 24 13:51:50 2002 EDT
>
> Modified files:
> /Zend zend.c zend_execute.c zend_execute.h zend_execute_API.c
> Log:
> @ - added zend_execute_internal which is called like zend_execute but for
> @ internal functions. (Thies)
>
> # read the source, luke!
> # ok as discussed with zeev on irc.
> # will port to ZE2 tomorrow!
This change is not in the ZendEngine2 yet, can you please merge it? (And
bumb up the extensions API no. to 20020824?)
regards,
Derick
>
>
> Index: Zend/zend.c
> diff -u Zend/zend.c:1.147 Zend/zend.c:1.148
> --- Zend/zend.c:1.147 Wed Aug 14 20:22:37 2002
> +++ Zend/zend.c Sat Aug 24 13:51:49 2002
> @@ -417,6 +417,7 @@
>
> zend_compile_file = compile_file;
> zend_execute = execute;
> + zend_execute_internal = NULL; /* saves one function hall if the zend_execute_internal is not
> used */
>
> /* set up version */
> zend_version_info = strdup(ZEND_CORE_VERSION_INFO);
> Index: Zend/zend_execute.c
> diff -u Zend/zend_execute.c:1.302 Zend/zend_execute.c:1.303
> --- Zend/zend_execute.c:1.302 Sat Aug 17 16:18:55 2002
> +++ Zend/zend_execute.c Sat Aug 24 13:51:49 2002
> @@ -996,6 +996,11 @@
>
> #define EX(element) execute_data.element
>
> +ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_value_used
> TSRMLS_DC)
> +{
> + ((zend_internal_function *)
> execute_data_ptr->function_state.function)->handler(execute_data_ptr->opline->extended_value,
> execute_data_ptr->Ts[execute_data_ptr->opline->result.u.var].var.ptr,
> execute_data_ptr->object.ptr, return_value_used TSRMLS_CC);
> +}
> +
> ZEND_API void execute(zend_op_array *op_array TSRMLS_DC)
> {
> zend_execute_data execute_data;
> @@ -1588,7 +1593,13 @@
> if (EX(function_state).function->type==ZEND_INTERNAL_FUNCTION) {
> ALLOC_ZVAL(EX(Ts)[EX(opline)->result.u.var].var.ptr);
> INIT_ZVAL(*(EX(Ts)[EX(opline)->result.u.var].var.ptr));
> - ((zend_internal_function *)
> EX(function_state).function)->handler(EX(opline)->extended_value,
> EX(Ts)[EX(opline)->result.u.var].var.ptr, EX(object).ptr, return_value_used TSRMLS_CC);
> +
> + if (! zend_execute_internal) {
> + /* saves one function hall if the zend_execute_internal is not used */
> + ((zend_internal_function *)
> EX(function_state).function)->handler(EX(opline)->extended_value,
> EX(Ts)[EX(opline)->result.u.var].var.ptr, EX(object).ptr, return_value_used TSRMLS_CC);
> + } else {
> + zend_execute_internal(&execute_data, return_value_used TSRMLS_CC);
> + }
> EG(execute_data_ptr) = &execute_data;
> if (EX(object).ptr) {
> EX(object).ptr->refcount--;
> Index: Zend/zend_execute.h
> diff -u Zend/zend_execute.h:1.44 Zend/zend_execute.h:1.45
> --- Zend/zend_execute.h:1.44 Mon May 20 03:16:43 2002
> +++ Zend/zend_execute.h Sat Aug 24 13:51:50 2002
> @@ -29,10 +29,12 @@
>
> BEGIN_EXTERN_C()
> ZEND_API extern void (*zend_execute)(zend_op_array *op_array TSRMLS_DC);
> +ZEND_API extern void (*zend_execute_internal)(zend_execute_data *execute_data_ptr, int
> return_value_used TSRMLS_DC);
>
> void init_executor(TSRMLS_D);
> void shutdown_executor(TSRMLS_D);
> ZEND_API void execute(zend_op_array *op_array TSRMLS_DC);
> +ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_value_used
> TSRMLS_DC);
> ZEND_API int zend_is_true(zval *op);
> static inline void safe_free_zval_ptr(zval *p)
> {
> Index: Zend/zend_execute_API.c
> diff -u Zend/zend_execute_API.c:1.143 Zend/zend_execute_API.c:1.144
> --- Zend/zend_execute_API.c:1.143 Sat Apr 27 12:20:59 2002
> +++ Zend/zend_execute_API.c Sat Aug 24 13:51:50 2002
> @@ -34,6 +34,8 @@
>
>
> ZEND_API void (*zend_execute)(zend_op_array *op_array TSRMLS_DC);
> +ZEND_API void (*zend_execute_internal)(zend_execute_data *execute_data_ptr, int
> return_value_used TSRMLS_DC);
> +
>
> #ifdef ZEND_WIN32
> #include <process.h>
>
>
>
> --
> Zend Engine CVS Mailing List (http://cvs.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
Derick Rethans
---------------------------------------------------------------------
PHP: Scripting the Web - www.php.net - derick@php.net
SRM: Script Running Machine - www.vl-srm.net
---------------------------------------------------------------------
JDI Media Solutions - www.jdimedia.nl - d.rethans@jdimedia.nl
Helhoek 30 - 6923 PE Groessen - The Netherlands
---------------------------------------------------------------------