[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: current CVS build segfaults
From: |
Tim Van Holder |
Subject: |
Re: current CVS build segfaults |
Date: |
Wed, 3 Oct 2007 16:20:18 +0200 |
On 10/3/07, Jason Rumney <address@hidden> wrote:
> Tim Van Holder wrote:
> > The current CVS build segfaults during startup (with or without -q); stack
> > trace in attachment (to avoid line break issues).
> >
> > (Note: the archives for this list seem to end in August, so I cannot check
> > if this has been reported already; apologies if it is a duplicate entry)
> >
>
> emacs-pretest-bug was merged with emacs-devel in August, so subsequent
> messages are archived in emacs-devel. There is a mail from earlier today
> which includes a suggested fix for this bug. The subject is "GC crash".
I can confirm that this patch fixes the crash:
--- frame.h 03 Oct 2007 09:20:59 +0200 1.124
+++ frame.h 03 Oct 2007 16:10:39 +0200
@@ -78,7 +78,6 @@ struct frame
struct Lisp_Vector *next;
/* All Lisp_Object components must come first.
- Only EMACS_INT values can be intermixed with them.
That ensures they are all aligned normally. */
/* Name of this frame: a Lisp string. It is used for looking up resources,
@@ -152,8 +151,6 @@ struct frame
For the format of the data, see extensive comments in xmenu.c.
Only the X toolkit version uses this. */
Lisp_Object menu_bar_vector;
- /* Number of elements in the vector that have meaningful data. */
- EMACS_INT menu_bar_items_used;
/* Predicate for selecting buffers for other-buffer. */
Lisp_Object buffer_predicate;
@@ -183,6 +180,9 @@ struct frame
/* Cache of realized faces. */
struct face_cache *face_cache;
+ /* Number of elements in the vector that have meaningful data. */
+ EMACS_INT menu_bar_items_used;
+
/* A buffer to hold the frame's name. We can't use the Lisp
string's pointer (`name', above) because it might get relocated. */
char *namebuf;
Note that putting anything before face_cache still triggers the
segfault (because face_cache is explicitly used in alloc.c to decide
the pseudovector's size), so perhaps an additional comment to that
effect is needed as well.