Martin Buchholz <martin(a)xemacs.org> writes:
>>>>> "GE" == Gunnar Evermann
<ge204(a)eng.cam.ac.uk> writes:
GE> Martin, I'd suggest to move the increments into the macros to make
GE> this more obvious.
But that would make the macro a nanosecond slower by making it expand
to larger code. We could of course add a comment for clarity instead.
I knew you would say that. :-)
Maybe it has to do with the #if 0 I wrapped around the following
code
in unbind_to_hairy(). My assumption was that if this broke, we would
find out rather quickly - and it's been more than a year now...
Yes that's my best guess at the moment as well, especially since
Raymond's backtraces seem to indicate that one element in the
catchlist is corrupted and involve Fthrow (and just about every other
non-trivial function in XEmacs).
Maybe we (and especially Raymond) can try running with the following
(untested) patch. Any backtraces might give new hints.
--- eval.c Wed Mar 15 20:55:26 2000
+++ eval.c-check Wed Mar 15 21:47:02 2000
@@ -4667,7 +4667,6 @@
Fset (specpdl_ptr->symbol, specpdl_ptr->old_value);
}
-#if 0 /* martin */
#ifndef EXCEEDINGLY_QUESTIONABLE_CODE
/* There should never be anything here for us to remove.
If so, it indicates a logic error in Emacs. Catches
@@ -4682,9 +4681,9 @@
while (catchlist && catchlist->pdlcount > specpdl_depth_counter)
{
+ assert(0);
catchlist = catchlist->next;
/* Don't mess with gcprolist, backtrace_list here */
}
-#endif
#endif
}
if (quitf)