emacs-devel
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]