>>>> "SJT" == Stephen J Turnbull
<turnbull(a)sk.tsukuba.ac.jp> writes:
>>>> "Matt" == Matt Tucker
<tuck(a)whistlingfish.net> writes:
Matt> The following patch fixes the crash,
but don't ask me why:
SJT> It looks to me XSETINT changes the value of the first argument before
SJT> evaluating the second. Oops.
It doesn't look like that to me.
Matt, could you try compiling with -O2 instead of -O3, and see if that
makes a difference? Or try turning off ansi-aliasing in your compiler?
If so, I can probably come up with a fix (but I don't have much time
now... later)
SJT> Index: callint.c
SJT> ===================================================================
SJT> RCS file: /usr/CVSroot/XEmacs/xemacs/src/callint.c,v
SJT> retrieving revision 1.12.2.8
SJT> diff -u -r1.12.2.8 callint.c
SJT> --- callint.c 2000/11/13 09:00:30 1.12.2.8
SJT> +++ callint.c 2001/02/21 03:08:42
SJT> @@ -933,7 +933,10 @@
SJT> temporarily, convert it to an integer now. */
SJT> for (argnum = 0; argnum < argcount; argnum++)
SJT> if (!NILP (varies[argnum]))
SJT> - XSETINT (args[argnum], marker_position (args[argnum]));
SJT> + {
SJT> + Bufpos tmp = marker_position (args[argnum]);
SJT> + XSETINT (args[argnum], tmp);
SJT> + }
SJT> single_console_state ();
SJT> specbind (Qcommand_debug_status, Qnil);
Matt> I'm not going to commit this, since I'm not certain it's the
Matt> right thing to do. Perhaps someone with a little more
Matt> experience with this code than I have can offer an opinion?
Please do not commit this. Understand it first.
SJT> The alternative would be to fix the lisp-union.h versions of
SJT> XSETINT and XSETCHAR, but it's not obvious to me how offhand.