Strange behavior from GLib Single Linked Lists in V1.2



G'Day !

I recently added some routines to my code base that stores a list of
structs in a GLIB single linked list.  This code is fairly straight
forward and the basic template has been used for various lists within
the program for the last 2 years, so I'm pretty sure it works.

This new list however has been giving SEGFAULTS when loading data into
the list at arbitray times.  Thes SEGFAULTS occur about 50% of the time
it is run and only on this list.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 17801)]
0x40194582 in g_slist_last () from /usr/lib/libglib-1.2.so.0
(gdb) backtrace
#0  0x40194582 in g_slist_last () from /usr/lib/libglib-1.2.so.0
#1  0x4019421d in g_slist_append () from /usr/lib/libglib-1.2.so.0
#2  0x0805e0b7 in gtkcad_create_part (list=0x7b005c, part_id=1,
part_name=0xbfffeeb0 "Main Hull", visible=1, locked=0, vertex_id=20,
x=0,     y=0, z=0, vector_id=1, i=0, j=0, k=1) at
UI/gtkcad_ui_parts_dialog.c:502
#3  0x08076732 in db_get_part_list () at DB/gtkcad_db_parts_ecpg.pgc:296
#4  0x08070f28 in db_open () at DB/gtkcad_db_postgresql_ecpg.pgc:306
#5  0x08053464 in gtkcad_db_submit_data (widget=0x80c6108,
data=0x80d2f48)
     at UI/gtkcad_ui_database_dialog.c:129
#6  0x400ad1b5 in gtk_marshal_NONE__NONE () from
/usr/lib/libgtk-1.2.so.0
#7  0x400dcb6c in gtk_signal_remove_emission_hook ()
    from /usr/lib/libgtk-1.2.so.0
#8  0x400dbfd5 in gtk_signal_set_funcs () from /usr/lib/libgtk-1.2.so.0
#9  0x400da0b3 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#10 0x4004b068 in gtk_button_clicked () from /usr/lib/libgtk-1.2.so.0
#11 0x4004c5ed in gtk_button_get_relief () from /usr/lib/libgtk-1.2.so.0
#12 0x400ad1b5 in gtk_marshal_NONE__NONE () from
/usr/lib/libgtk-1.2.so.0
#13 0x400dbe6f in gtk_signal_set_funcs () from /usr/lib/libgtk-1.2.so.0
#14 0x400da0b3 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#15 0x4004afa8 in gtk_button_released () from /usr/lib/libgtk-1.2.so.0
#16 0x4004bf58 in gtk_button_get_relief () from /usr/lib/libgtk-1.2.so.0
#17 0x400ace3f in gtk_marshal_BOOL__POINTER () from
/usr/lib/libgtk-1.2.so.0
#18 0x400dc013 in gtk_signal_set_funcs () from /usr/lib/libgtk-1.2.so.0
#19 0x400da0b3 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#20 0x40110acb in gtk_widget_event () from /usr/lib/libgtk-1.2.so.0
#21 0x400acd85 in gtk_propagate_event () from /usr/lib/libgtk-1.2.so.0
#22 0x400abeee in gtk_main_do_event () from /usr/lib/libgtk-1.2.so.0
#23 0x4015a457 in gdk_wm_protocols_filter () from
/usr/lib/libgdk-1.2.so.0
#24 0x4018b4d8 in g_get_current_time () from /usr/lib/libglib-1.2.so.0
#25 0x4018bae3 in g_get_current_time () from /usr/lib/libglib-1.2.so.0
#26 0x4018bc7c in g_main_run () from /usr/lib/libglib-1.2.so.0
#27 0x400ab7e7 in gtk_main () from /usr/lib/libgtk-1.2.so.0
#28 0x080519a7 in main (argc=1, argv=0xbffffd54) at GtkCAD.c:320
(gdb)


the struct in question looks like this:

typdef struct {
   gint   id;
   gchar  name[25];
gint *vertex; /* pointer to a struct containing a vertex x, y, z info */ gint *vector; /* pointer to a struct containing a vertex i, j, k info */
   gint   visible;
   gint   locked;
} typPart;


Does anyone have any ideas ?

TIA

cheers,
Jim Parker




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