possibly buggy theme causes crashes?



I'm currently developing a GNOME/GTK+ program that uses a progress
bar....nothing too complicated.  But, a curious thing has happened: using
the CoolIce theme (the one distributed with HelixCode), after calling my
progress bar update function, when I call gtk_main_iteration() in order to
refresh the screen, my program crashes; but if I switch to other themes such
as Coolness or BlueSteel (distributed with HelixCode), the program doesn't
crash.  I'm wandering if the CoolIce theme is buggy, if there's something
wrong with my program, and/or if there's a bug in GDK/GTK+.

Here's the code that calls the progress bar update routine:
...
shared_progbar_update(data, 0);
while(gtk_events_pending())
{
gtk_main_iteration();
}
...

Here's shared_progbar_update:

void shared_progbar_update(gpointer data, gint newprogbar)
{
static gfloat length = 0.0;
GtkAdjustment *adj;

adj = GTK_PROGRESS(data)->adjustment;

/* if we have a new progress bar, set length = 0.0, which will clear the
bar; if it's an old progress bar (i.e., another iteration of a currently
updating bar), then add 1.0 to the bar length */

/* set newprogbar = 1 to start a new one */

if(newprogbar)
length = 0.0;
else
length += 1.0;

gtk_progress_set_value(GTK_PROGRESS(data), length);

return;
}

Here's GDB 5.0's backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x4042a679 in chunk_free (ar_ptr=0x404ba580, p=0x8327ba8) at malloc.c:3020
3020    malloc.c: No such file or directory.
(gdb) bt
#0  0x4042a679 in chunk_free (ar_ptr=0x404ba580, p=0x8327ba8) at
malloc.c:3020
#1  0x4042c153 in free_check (mem=0x8327bb0, caller=0x401a036d)
at malloc.c:4384
#2  0x4042a47f in __libc_free (mem=0x8327bb0) at malloc.c:2900
#3  0x401a036d in g_free () from /usr/lib/libglib-1.2.so.0
#4  0x40177380 in gdk_pixmap_unref () from /usr/lib/libgdk-1.2.so.0
#5  0x400df9ed in gtk_progress_create_pixmap () from
/usr/lib/libgtk-1.2.so.0
#6  0x400df92e in gtk_progress_size_allocate () from
/usr/lib/libgtk-1.2.so.0
#7  0x400c5055 in gtk_marshal_NONE__POINTER () from /usr/lib/libgtk-1.2.so.0
#8  0x400f1cbb in gtk_signal_real_emit () from /usr/lib/libgtk-1.2.so.0
#9  0x400eff05 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#10 0x40124478 in gtk_widget_size_allocate () from /usr/lib/libgtk-1.2.so.0
#11 0x40102ca7 in gtk_table_size_allocate_pass2 ()
from /usr/lib/libgtk-1.2.so.0
#12 0x40101914 in gtk_table_size_allocate () from /usr/lib/libgtk-1.2.so.0
#13 0x400c5055 in gtk_marshal_NONE__POINTER () from /usr/lib/libgtk-1.2.so.0
#14 0x400f1cbb in gtk_signal_real_emit () from /usr/lib/libgtk-1.2.so.0
#15 0x400eff05 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#16 0x40124478 in gtk_widget_size_allocate () from /usr/lib/libgtk-1.2.so.0
#17 0x40084a65 in gtk_container_resize_children ()
from /usr/lib/libgtk-1.2.so.0
#18 0x4012d8e3 in gtk_window_move_resize () from /usr/lib/libgtk-1.2.so.0
#19 0x4012d216 in gtk_window_check_resize () from /usr/lib/libgtk-1.2.so.0
#20 0x400c522d in gtk_marshal_NONE__NONE () from /usr/lib/libgtk-1.2.so.0
#21 0x400f1e3b in gtk_signal_real_emit () from /usr/lib/libgtk-1.2.so.0
#22 0x400eff05 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#23 0x40084798 in gtk_container_check_resize () from
/usr/lib/libgtk-1.2.so.0
#24 0x4008448f in gtk_container_idle_sizer () from /usr/lib/libgtk-1.2.so.0
#25 0x401a0149 in g_idle_dispatch () from /usr/lib/libglib-1.2.so.0
#26 0x4019f186 in g_main_dispatch () from /usr/lib/libglib-1.2.so.0
#27 0x4019f751 in g_main_iterate () from /usr/lib/libglib-1.2.so.0
#28 0x4019f804 in g_main_iteration () from /usr/lib/libglib-1.2.so.0
#29 0x400c3b1d in gtk_main_iteration () from /usr/lib/libgtk-1.2.so.0
#30 0x805ad59 in split_log_splitter (widget=0x0, data=0x8324d10)
at split.c:1208
#31 0x8059f15 in split_handle_log_splitter (widget=0x8279f18,
data=0x8324d10)
at split.c:797
#32 0x400c522d in gtk_marshal_NONE__NONE () from /usr/lib/libgtk-1.2.so.0
#33 0x400f29bd in gtk_handlers_run () from /usr/lib/libgtk-1.2.so.0
#34 0x400f1e02 in gtk_signal_real_emit () from /usr/lib/libgtk-1.2.so.0
#35 0x400eff05 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#36 0x40064858 in gtk_button_clicked () from /usr/lib/libgtk-1.2.so.0
#37 0x40065e48 in gtk_real_button_released () from /usr/lib/libgtk-1.2.so.0
#38 0x400c522d in gtk_marshal_NONE__NONE () from /usr/lib/libgtk-1.2.so.0
#39 0x400f1cbb in gtk_signal_real_emit () from /usr/lib/libgtk-1.2.so.0
#40 0x400eff05 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#41 0x40064798 in gtk_button_released () from /usr/lib/libgtk-1.2.so.0
#42 0x40065802 in gtk_button_button_release () from /usr/lib/libgtk-1.2.so.0
#43 0x400c4df9 in gtk_marshal_BOOL__POINTER () from /usr/lib/libgtk-1.2.so.0
#44 0x400f1e3b in gtk_signal_real_emit () from /usr/lib/libgtk-1.2.so.0
#45 0x400eff05 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#46 0x4012531c in gtk_widget_event () from /usr/lib/libgtk-1.2.so.0
#47 0x400c4d52 in gtk_propagate_event () from /usr/lib/libgtk-1.2.so.0
#48 0x400c3faa in gtk_main_do_event () from /usr/lib/libgtk-1.2.so.0
#49 0x4016e53b in gdk_event_dispatch () from /usr/lib/libgdk-1.2.so.0
#50 0x4019f186 in g_main_dispatch () from /usr/lib/libglib-1.2.so.0
#51 0x4019f751 in g_main_iterate () from /usr/lib/libglib-1.2.so.0
#52 0x4019f8f1 in g_main_run () from /usr/lib/libglib-1.2.so.0
#53 0x400c38e9 in gtk_main () from /usr/lib/libgtk-1.2.so.0
#54 0x80505ba in main (argc=1, argv=0xbffffa04) at dstep.c:395
#55 0x403e9cb3 in __libc_start_main (main=0x805047c <main>, argc=1,
argv=0xbffffa04, init=0x804e5c4 <_init>, fini=0x805cfac <_fini>,
rtld_fini=0x4000a350 <_dl_fini>, stack_end=0xbffff9fc)
at ../sysdeps/generic/libc-start.c:78


I'm using the following on a 700mhz PIII running RedHat 6.2 on a 2.2.14-5.0
(RedHat's) kernel:

gtk+ version 1.2.8
glib version 1.2.8
egcs-2.91.66

I'd appreciate any help/advice/comments on this.  If I'm updating the
progress bar in a terrible way or committing other programming sins, let me
know.  Thanks in advance for your help.

w|f


______________________________________________
FREE Personalized Email at Mail.com
Sign up at http://www.mail.com/?sr=signup




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]