Subject: Re: bug#12839: 24.3.50; Emacs aborts in GC

From: Dmitry Antipov <[email-masked]>
Date: Fri, 09 Nov 2012 17:17:26 +0400

On 11/09/2012 11:24 AM, Eli Zaretskii wrote:

> I'd be happy to try debugging this myself, but I need guidance
> regarding some basics of what you changed recently in this area.
> Alternatively, tell me what to do in GDB, and I will post the results.
> I'm quite fluent with GDB, and reproducing this is extremely easy :-(.

Try this:

=== modified file 'src/w32term.h'
--- src/w32term.h	2012-10-17 19:02:44 +0000
+++ src/w32term.h	2012-11-09 13:13:43 +0000
@@ -414,10 +414,8 @@
     vector.  */

  struct scroll_bar {
-
-  /* These fields are shared by all vectors.  */
-  EMACS_INT size_from_Lisp_Vector_struct;
-  struct Lisp_Vector *next_from_Lisp_Vector_struct;
+  /* This field is shared by all vectors.  */
+  struct vectorlike_header header;

    /* The window we're a scroll bar for.  */
    Lisp_Object window;

This is Windows-specific and obviously wrong since sizeof (struct vectorlike_header)
is now _less than_ sizeof (EMACS_INT) + sizeof (struct Lisp_Vector *).

Dmitry