>>>> SM == Sylvain Mazet writes:
SM> my XEmacs
21.5.19 crashes in garbage collection
SM> when compiled with kkcc and mule support,
SM> on sun solaris 5.8.
SM>
SM> Disabling either mule OR kkcc makes the crash disappear.
...
SM> [4] lispdesc_indirect_count_1(code = -1, idesc = 0x95e9c4, idata = 0x1384800),
line 3086 in "/home/smazet/ROOT/share/xemacs-21.5.19/src/alloc.c"
SM> [5] lispdesc_indirect_count(code = -1, idesc = 0x95e9c4, idata = 0x1384800), line
1627 in "/home/smazet/ROOT/share/xemacs-21.5.19/src/lrecord.h"
SM> [6] lispdesc_process_xd_union(desc1 = 0x95e9d8, desc = 0x95e9c4, data =
0x1384800), line 1658 in "/home/smazet/ROOT/share/xemacs-21.5.19/src/lrecord.h"
SM> [7] kkcc_marking(), line 3542 in
"/home/smazet/ROOT/share/xemacs-21.5.19/src/alloc.c"
...
The crash happens on trying to identify the type of the union object in
struct rune (via lispdesc_process_xd_union). The type field in struct rune
is a char, which breaks the de-referencing in lispdesc_indirect_count_1, at
least on Sun OS.
This patch changes char to int, which fixes the problem:
Index: redisplay.h
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/redisplay.h,v
retrieving revision 1.22
diff -u -r1.22 redisplay.h
--- redisplay.h 26 Jan 2005 10:33:42 -0000 1.22
+++ redisplay.h 2 Mar 2005 02:22:54 -0000
@@ -144,7 +144,7 @@
unsigned char cursor_type; /* is this rune covered by the cursor? */
- unsigned char type; /* type of rune object */
+ unsigned int type; /* type of rune object */
/* We used to do bitfields here, but if I
(JV) count correctly that doesn't matter
for the size of the structure. All the bit
--
Marcus