Hi everyone,
I've finally found the bug which makes XEmacs crash if compiled with
SUN-CC, -gung-ho and workshop support (as reported by Georg and
myself, e.g. <13638.20762.848751.664065@verve>,
<199805041403.QAA00409(a)nats7.informatik.uni-hamburg.de>).
I spend two days single-stepping through the GC and FByte_code :-)
The two Lisp_Objects mentioned below get collected (before dumping I
guess). In the dumped binary Tooltalk_Pattern_plist_str points to some
string (in the locate-file-hashtable of some string of of the
load-path vars), if a GC occurs before TT-Initialization it points to
nowhere and everything goes to hell...
I posted this to XEmacs-beta as well because I'm a complete novice to
XEmacs-C-Internals and I guess the GC-stuff is a rather dangerous
place to start hacking :-) So maybe the GC and/or TT-experts can
comment -- is this the right way and why doesn't this show up when not
using gung-ho?
Anyway this fixes the problem for me (XEmacs starts up OK and after
installing the pc and vc-packages TT-communication to workshop seems
to work.
Gunnar
1998-05-26 Gunnar Evermann <Gunnar.Evermann(a)nats.informatik.uni-hamburg.de>
* tooltalk.c (vars_of_tooltalk) added staticpro for
Tooltalk_Message_plist_str and Tooltalk_Pattern_plist_str
--- src/tooltalk.c~ Fri May 1 03:11:07 1998
+++ src/tooltalk.c Tue May 26 15:31:36 1998
@@ -1421,6 +1421,9 @@
Tooltalk_Message_plist_str = build_string ("Tooltalk Message plist");
Tooltalk_Pattern_plist_str = build_string ("Tooltalk Pattern p plist");
+ staticpro(&Tooltalk_Message_plist_str);
+ staticpro(&Tooltalk_Pattern_plist_str);
+
#define MAKE_CONSTANT(name) do { \
defsymbol (&Q_ ## name, #name); \
Fset (Q_ ## name, make_int (name)); \