>>>> Aidan Kehoe writes:
Ar an t-aonú lá is triochad de mí Iúil, scríobh Stephen J. Turnbull:
> The code at bytecode.c:1627 is the last line calling
> below. I wonder if maybe the compiler doesn't like the local
> declaration of struct jump in the middle of the declarations with
> initializations, or maybe either the compiler or cygwin.dll just
> doesn't handle alloca_array as we expect.
That’s it--it’s a mundane stack overflow. The length of the
string is 79648, we try to allocate twice that (= 160k) on the stack,
Windows refuses. Mule-UCS is horrible code.
The below makes (require 'un-define) work for me. I’m not sure
doesn’t leak memory in the various error cases, unhappily.
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/bytecode.c,v
retrieving revision 188.8.131.52
diff -u -r184.108.40.206 bytecode.c
--- bytecode.c 2005/01/31 02:55:04 220.127.116.11
+++ bytecode.c 2006/07/31 10:36:05
＠＠ -1624,7 +1624,7 ＠＠
- struct jump * const jumps = alloca_array (struct jump, comfy_size);
+ struct jump * const jumps = xnew_array (struct jump, comfy_size);
struct jump *jumps_ptr = jumps;
Opbyte *program_ptr = program;
＠＠ -1868,6 +1868,7 ＠＠
/* *program_ptr++ = 0; */
*program_length = program_ptr - program;
/* Optimize the byte code and store the optimized program, only
Santa Maradona, priez pour moi!
Thanks Aidan for the patch. It also works for me. I will release a new
cygwin version of xemacs ASAP. Will this patch make it in the next
official 21.4.19 release ?
Strange that it didn't manifest at earlier cygwin dll versions.