Re: [PHP4BETA] Reproducible zend_execute trap on Windows
| From: | Andi Gutmans | Date: | Wed, 15 Mar 2000 17:34:54 +0000 |
| Subject: | Re: [PHP4BETA] Reproducible zend_execute trap on Windows | ||
| References: | 1 | Groups: | php.version4 |
| Request: | Send a blank email to php-version4+get-12172@lists.php.net to get a copy of this message | ||
Sam,
Well your patch wasn't correct but thanks for reporting the bug. I
introduced it a few days ago but I fixed it now. Please update your CVS.
Andi
On Wed, 15 Mar 2000 rubys@us.ibm.com wrote:
>
>
> After doing a bit of development on Linux, I went back to regression test
> my changes on Windows. Every script trapped. Simplifying the scripts and
> eliminating all other variables, I found that the trap occurred when
> compiled for CGI with no extensions, and even with scripts with no logic.
>
> Tracing the execution on both Linux and Win32, I found where the path
> differed. Below are the changes required to bring them both in line. I
> don't know enough about Zend internals to know if these are the right
> fixes, so instead of committing them straight-away, I'm posting it here.
>
> --- d:/cvs/Zend/zend_execute.c Sat Mar 11 10:59:00 2000
> +++ zend_execute.c Wed Mar 15 08:37:36 2000
> @@ -987,9 +987,7 @@
> void execute(zend_op_array *op_array ELS_DC)
> {
> zend_op *opline = op_array->opcodes;
> -#if SUPPORT_INTERACTIVE
> zend_op *end = op_array->opcodes + op_array->last;
> -#endif
> zend_function_state function_state;
> zend_function *fbc=NULL; /* Function Being Called */
> object_info object = {NULL};
> @@ -1032,11 +1030,7 @@
> }
> }
>
> -#if SUPPORT_INTERACTIVE
> while (opline<end) {
> -#else
> - while (1) {
> -#endif
> switch(opline->opcode) {
> case ZEND_ADD:
> EG(binary_op) = add_function;
> @@ -2360,8 +2354,6 @@
> }
> #if SUPPORT_INTERACTIVE
> op_array->last_executed_op_number = opline-op_array->opcodes;
> - free_alloca(Ts);
> -#else
> - zend_error(E_ERROR,"Arrived at end of main loop which shouldn't
> happen");
> #endif
> + free_alloca(Ts);
> }
>
> - Sam Ruby
>
>
>
>