xffm: empty directory

edscott wilson garcia edscott at imp.mx
Tue Apr 15 01:54:30 CEST 2003


Hi Jens,

  It seems there where 2 (not one) places where I had the same race
condition. I managed to reproduce the bug by clicking ctrl-up like mad,
so I put in a traffic light and now operation should be normal. It could
also be solved with a queue, but I'm not sure if it's worth the extra
code to do that.

Edscott

El lun, 14-04-2003 a las 14:52, Jens Guballa escribió:
> Hi Edscott,
> 
> On Sun, Apr 13, 2003 at 10:07:50PM -0500, edscott wilson garcia wrote:
> > El dom, 13-04-2003 a las 11:58, Jens Guballa escribió:
> > > Hi,
> > > 
> > > I noticed, that the ".." entry is missing in an empty directory. So you
> > > have to use Control-Up to change to the higher directory.
> > 
> > I hadn't thought about that. It should be easy to fix.
> > 
> > > 
> > > Ups..., while I am writing these lines, I recognize that xffm is
> > > crashing when Control-Up is pressed twice very quickly.
> > 
> > I cannot reproduce it, but maybe that's because it's due to a bug in the
> > goto routine which I fixed while removing the bug described by Olivier
> > earlier today. 
> 
> I checked out xffm from CVS today, the behaviour is still the same.
> 
> A backtrace is attached. I haven't looked into that in detail, but in
> open_dir *en seems to contain rubbish data: 
> 
> (gdb) print *en
> 
> $2 = {type = 138879080, subtype = 0, count = 0, st = 0x1f4, tag = 0x4
> <Address 0x4 out of bounds>, path = 0x3f <Address 0x3f out of bounds>,
> filter = 0x2400 <Address 0x2400 out of bounds>, checksum =
> 8029744614627868697, load_time = 138805364}
> 
> Let me know if you need any more information, I can reproduce this
> behaviour on my machine.
> 
> Regards,
> Jens
> 
> > 
> > FWIW, GtkTreeIters become invalid when you add or delete stuff to the
> > tree. While executing goto code, xffm was deleting row data, collapsing
> > the row and then setting new data to the row. But that is now fixed
> > (committing at this moment).
> > 
> > OT, I didn't have time to prepare the xffm beta-release today, so it
> > will probably come out tommorrow.
> > 
> > Edscott
> > 
> ----
> 

> GNU gdb 2002-04-01-cvs
> Copyright 2002 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i386-linux".
> (gdb) file /usr/local/bin/xffm
> Reading symbols from /usr/local/bin/xffm...done.
> (gdb) run
> Starting program: /usr/local/stow/xfce-devel/bin/xffm 
> [New Thread 1024 (LWP 24100)]
> 
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 1024 (LWP 24100)]
> 0x40684f7e in vfprintf () from /lib/libc.so.6
> (gdb) backtrace
> #0  0x40684f7e in vfprintf () from /lib/libc.so.6
> #1  0x406a08ca in vsnprintf () from /lib/libc.so.6
> #2  0x4068c3e1 in snprintf () from /lib/libc.so.6
> #3  0x08051589 in set_title (treeview=0x817ed30, 
>     path=0x1 <Address 0x1 out of bounds>) at aux.c:98
> #4  0x08060187 in open_dir (treeview=0x817ed30, iter=0x846cc80, 
>     treepath=0x83f6c68, user_data=0x817ed30) at callbacks.c:327
> #5  0x402a32c9 in _gtk_marshal_VOID__BOXED_BOXED (closure=0x81a3e58, 
>     return_value=0x0, n_param_values=3, param_values=0xbfffdf2c, 
>     invocation_hint=0xbfffde08, marshal_data=0x0) at gtkmarshalers.c:862
> #6  0x404ebe2b in g_closure_invoke (closure=0x81a3e58, return_value=0x0, 
>     n_param_values=3, param_values=0xbfffdf2c, invocation_hint=0xbfffde08)
>     at gclosure.c:437
> #7  0x404fef23 in signal_emit_unlocked_R (node=0x817a788, detail=0, 
>     instance=0x817ed30, emission_return=0x0, instance_and_params=0xbfffdf2c)
>     at gsignal.c:2822
> #8  0x404fd79a in g_signal_emit_valist (instance=0x817ed30, signal_id=202, 
>     detail=0, var_args=0xbfffe0b8) at gsignal.c:2554
> #9  0x404fda45 in g_signal_emit (instance=0x817ed30, signal_id=202, detail=0)
>     at gsignal.c:2612
> #10 0x4034b8a3 in gtk_tree_view_real_expand_row (tree_view=0x817ed30, 
>     path=0x83dba88, tree=0x81a3f20, node=0x81a3fe4, open_all=0, animate=0)
>     at gtktreeview.c:9201
> ---Type <return> to continue, or q <return> to quit---
> #11 0x4034b991 in gtk_tree_view_expand_row (tree_view=0x817ed30, 
>     path=0x83dba88, open_all=0) at gtktreeview.c:9235
> #12 0x0805fdb5 in open_dir (treeview=0x817ed30, iter=0x80c7700, 
>     treepath=0x83dba88, user_data=0x817ed30) at callbacks.c:271
> #13 0x402a32c9 in _gtk_marshal_VOID__BOXED_BOXED (closure=0x81a3e58, 
>     return_value=0x0, n_param_values=3, param_values=0xbfffe55c, 
>     invocation_hint=0xbfffe438, marshal_data=0x0) at gtkmarshalers.c:862
> #14 0x404ebe2b in g_closure_invoke (closure=0x81a3e58, return_value=0x0, 
>     n_param_values=3, param_values=0xbfffe55c, invocation_hint=0xbfffe438)
>     at gclosure.c:437
> #15 0x404fef23 in signal_emit_unlocked_R (node=0x817a788, detail=0, 
>     instance=0x817ed30, emission_return=0x0, instance_and_params=0xbfffe55c)
>     at gsignal.c:2822
> #16 0x404fd79a in g_signal_emit_valist (instance=0x817ed30, signal_id=202, 
>     detail=0, var_args=0xbfffe6e8) at gsignal.c:2554
> #17 0x404fda45 in g_signal_emit (instance=0x817ed30, signal_id=202, detail=0)
>     at gsignal.c:2612
> #18 0x4034b8a3 in gtk_tree_view_real_expand_row (tree_view=0x817ed30, 
>     path=0x845e558, tree=0x81a3f20, node=0x81a3fe4, open_all=0, animate=0)
>     at gtktreeview.c:9201
> #19 0x4034b991 in gtk_tree_view_expand_row (tree_view=0x817ed30, 
>     path=0x845e558, open_all=0) at gtktreeview.c:9235
> #20 0x4002b5ed in go_up (widget=0x80c6dc8) at goto.c:282
> ---Type <return> to continue, or q <return> to quit---
> #21 0x4002b7da in on_up2_activate (menuitem=0x80c6dc8, user_data=0x0)
>     at goto.c:345
> #22 0x404ffd26 in g_cclosure_marshal_VOID__VOID (closure=0x80c6f48, 
>     return_value=0x0, n_param_values=1, param_values=0xbfffeb5c, 
>     invocation_hint=0xbfffea38, marshal_data=0x0) at gmarshal.c:77
> #23 0x404ebe2b in g_closure_invoke (closure=0x80c6f48, return_value=0x0, 
>     n_param_values=1, param_values=0xbfffeb5c, invocation_hint=0xbfffea38)
>     at gclosure.c:437
> #24 0x404fef23 in signal_emit_unlocked_R (node=0x80a9a10, detail=0, 
>     instance=0x80c6dc8, emission_return=0x0, instance_and_params=0xbfffeb5c)
>     at gsignal.c:2822
> #25 0x404fd79a in g_signal_emit_valist (instance=0x80c6dc8, signal_id=97, 
>     detail=0, var_args=0xbfffece0) at gsignal.c:2554
> #26 0x404fda45 in g_signal_emit (instance=0x80c6dc8, signal_id=97, detail=0)
>     at gsignal.c:2612
> #27 0x4035d002 in closure_accel_activate (closure=0x80c7268, 
>     return_value=0xbfffeebc, n_param_values=4, param_values=0xbffff00c, 
>     invocation_hint=0xbfffeed8, marshal_data=0x0) at gtkwidget.c:2617
> #28 0x404ebe2b in g_closure_invoke (closure=0x80c7268, 
>     return_value=0xbfffeebc, n_param_values=4, param_values=0xbffff00c, 
>     invocation_hint=0xbfffeed8) at gclosure.c:437
> #29 0x404fef23 in signal_emit_unlocked_R (node=0x8091c48, detail=393, 
>     instance=0x8091e98, emission_return=0xbfffefcc, 
> ---Type <return> to continue, or q <return> to quit---
>     instance_and_params=0xbffff00c) at gsignal.c:2822
> #30 0x404fd807 in g_signal_emit_valist (instance=0x8091e98, signal_id=7, 
>     detail=393, var_args=0xbffff19c) at gsignal.c:2564
> #31 0x404fda45 in g_signal_emit (instance=0x8091e98, signal_id=7, detail=393)
>     at gsignal.c:2612
> #32 0x40226516 in _gtk_accel_group_activate (accel_group=0x8091e98, 
>     accel_quark=393, acceleratable=0x809e4e0, accel_key=65362, 
>     accel_mods=GDK_CONTROL_MASK) at gtkaccelgroup.c:732
> #33 0x40226617 in gtk_accel_groups_activate (object=0x809e4e0, 
>     accel_key=65362, accel_mods=GDK_CONTROL_MASK) at gtkaccelgroup.c:770
> #34 0x4036bc61 in _gtk_window_activate_key (window=0x809e4e0, event=0x83e1030)
>     at gtkwindow.c:6754
> #35 0x40368d21 in gtk_window_key_press_event (widget=0x809e4e0, 
>     event=0x83e1030) at gtkwindow.c:4055
> #36 0x402a2412 in _gtk_marshal_BOOLEAN__BOXED (closure=0x80970b0, 
>     return_value=0xbffff48c, n_param_values=2, param_values=0xbffff5dc, 
>     invocation_hint=0xbffff4a8, marshal_data=0x40368cfc) at gtkmarshalers.c:82
> #37 0x404ec205 in g_type_class_meta_marshal (closure=0x80970b0, 
>     return_value=0xbffff48c, n_param_values=2, param_values=0xbffff5dc, 
>     invocation_hint=0xbffff4a8, marshal_data=0xcc) at gclosure.c:514
> #38 0x404ebe2b in g_closure_invoke (closure=0x80970b0, 
>     return_value=0xbffff48c, n_param_values=2, param_values=0xbffff5dc, 
>     invocation_hint=0xbffff4a8) at gclosure.c:437
> ---Type <return> to continue, or q <return> to quit---
> #39 0x404ff31a in signal_emit_unlocked_R (node=0x8097280, detail=0, 
>     instance=0x809e4e0, emission_return=0xbffff59c, 
>     instance_and_params=0xbffff5dc) at gsignal.c:2860
> #40 0x404fd807 in g_signal_emit_valist (instance=0x809e4e0, signal_id=36, 
>     detail=0, var_args=0xbffff764) at gsignal.c:2564
> #41 0x404fda45 in g_signal_emit (instance=0x809e4e0, signal_id=36, detail=0)
>     at gsignal.c:2612
> #42 0x4035df02 in gtk_widget_event_internal (widget=0x809e4e0, event=0x83e1030)
>     at gtkwidget.c:3143
> #43 0x4035db60 in gtk_widget_event (widget=0x809e4e0, event=0x83e1030)
>     at gtkwidget.c:3004
> #44 0x402a228d in gtk_propagate_event (widget=0x809e4e0, event=0x83e1030)
>     at gtkmain.c:2235
> #45 0x402a12ce in gtk_main_do_event (event=0x83e1030) at gtkmain.c:1502
> #46 0x404522dd in gdk_event_dispatch (source=0x8090e10, callback=0, 
>     user_data=0x0) at gdkevents-x11.c:2018
> #47 0x4053df59 in g_main_dispatch (context=0x8090e58) at gmain.c:1653
> #48 0x4053ed77 in g_main_context_dispatch (context=0x8090e58) at gmain.c:2197
> #49 0x4053f153 in g_main_context_iterate (context=0x8090e58, block=1, 
>     dispatch=1, self=0x80b3188) at gmain.c:2278
> #50 0x4053f82f in g_main_loop_run (loop=0x83eb438) at gmain.c:2498
> #51 0x402a09b7 in gtk_main () at gtkmain.c:1092
> #52 0x08063197 in main (argc=1, argv=0xbffffc34) at main.c:220
> (gdb) quit
> A debugging session is active.
> Do you still want to close the debugger?(y or n) y





More information about the Xfce4-dev mailing list