Subject: Re: bug#8217: 23.3; Runtime segmentation fault when compiled with -O2 on GNU/Linux

From: Chong Yidong <[email-masked]>
Date: Thu, 24 Mar 2011 12:26:10 -0400

Ulrich Mueller <[email-masked]> writes:

>> FWIW, I cannot reproduce this on this system:
>
>>   Linux fencepost 2.6.32-313-ec2 #26-Ubuntu SMP Fri Feb 11 22:34:31
>> UTC 2011 x86_64 GNU/Linux
>
>> [...]
>
>> with GTK+ Version 2.20.1 as the toolkit.
>
> I confirm that it doesn't fail for me if I configure --with-toolkit=gtk.
> The segfault occurs with the --with-toolkit=athena configure option.

I think this has to do with the messy way we handle scroll bars, which
are currently stored as Lisp objects and recast into scroll_bar
structures when used.

By the way, I notice that x_scroll_bar_create has

  struct scroll_bar *bar
    = ALLOCATE_PSEUDOVECTOR (struct scroll_bar, x_window, PVEC_OTHER);

I don't know if the former is correct (it was introduced back in
revision 82084 by Stefan), but it means the SCROLL_BAR_VEC_SIZE macro
defined in xterm.h is unused, which looks odd.  In comparison, w32term.c
has

  struct scroll_bar *bar
    = XSCROLL_BAR (Fmake_vector (make_number (SCROLL_BAR_VEC_SIZE), Qnil));