Crash of xffm

Olivier Fourdan fourdan at xfce.org
Sun Jun 22 09:28:01 CEST 2003


Hi Edscott,


Excellent! You fixed a bug and removed a hack... So that'll be part of
beta2 :)

Thanks a lot,

Cheers,
Olivier.


On Sun, 2003-06-22 at 02:52, edscott wilson garcia wrote:
> Hi Olivier, 
> 
> El sáb, 21-06-2003 a las 15:04, Olivier Fourdan escribió:
> > Edscott,
> > 
> > Do you think you can fix this (somehow major) bug before beta2, ie,
> > within the next 24 hrs or so ?
> 
> Done. Its fixed now. It's caused by a race condition with gtk treeview
> internals (I'm trying to permit scrolling while the treeview is still
> loading). I've removed the ability to scroll while the treeview is
> expanding, xffm won't look so good while expanding big directories, but
> it should not crash.
> 
> I also uploaded some other fixes which would be nice for beta2. These
> include a fix for the bug reported earlier by Berhart about trash
> collecting, (you can now collect trash directly from any wastebasket).
> Also, I added smart history for the run combo, filter combo, goto combo,
> and find-filter combo. By smart history I mean that the entries are
> ordered according to which one is selected most often, and it persists
> from session to session. This makes the goto function an effective
> bookmarker in the sense of other filemanagers.
> 
> regards,
> 
> Edscott 
> 
> s 
> > 
> > Cheers,
> > Olivier.
> > 
> > On Sat, 2003-06-21 at 16:09, Bernhard Walle wrote:
> > > Hello,
> > > 
> > > if I do following, xffm sometimes crashes: Uncollect trash items, then
> > > collect items of a directory (called $HOME/Eigene/templates), then
> > > viewing this items in the main trash, uncollecting again, collecting,
> > > viewing *CRASH*.
> > > 
> > > I compiled xffm with -ggdb and then run in ddd. A core dump is not
> > > created, I made a backtrace. Note #36, it's in this function:
> > > 
> > > 
> > > /* this function is to workaround a gtk bug in treeviews, where a 
> > >  * while(gtk_events_pending()) will not break... 
> > >  * Let's say 256 iterations suffice... */
> > > void process_pending_gtk(){
> > >   int i;
> > >   for (i=0;i<256;i++){
> > > 	  if (!gtk_events_pending()) break;
> > > 	  else gtk_main_iteration();
> > >   }
> > > }
> > > 
> > > 
> > > 
> > > #0  0x403f55f0 in gdk_rgb_find_color () from /usr/lib/libgdk-x11-2.0.so.0
> > > #1  0x403f5651 in gdk_rgb_find_color () from /usr/lib/libgdk-x11-2.0.so.0
> > > #2  0x403f607e in gdk_rgb_find_color () from /usr/lib/libgdk-x11-2.0.so.0
> > > #3  0x403f63ee in gdk_draw_rgb_32_image_dithalign () from /usr/lib/libgdk-x11-2.0.so.0
> > > #4  0x403e94bb in gdk_drawable_get_visible_region () from /usr/lib/libgdk-x11-2.0.so.0
> > > #5  0x40408297 in gdk_x11_drawable_get_xid () from /usr/lib/libgdk-x11-2.0.so.0
> > > #6  0x403e8190 in gdk_draw_pixbuf () from /usr/lib/libgdk-x11-2.0.so.0
> > > #7  0x403f0dab in gdk_pixmap_get_type () from /usr/lib/libgdk-x11-2.0.so.0
> > > #8  0x403e8190 in gdk_draw_pixbuf () from /usr/lib/libgdk-x11-2.0.so.0
> > > #9  0x403fbca1 in gdk_window_clear_area_e () from /usr/lib/libgdk-x11-2.0.so.0
> > > #10 0x403e8190 in gdk_draw_pixbuf () from /usr/lib/libgdk-x11-2.0.so.0
> > > #11 0x4020ca40 in gtk_cell_renderer_pixbuf_new () from /usr/lib/libgtk-x11-2.0.so.0
> > > #12 0x40208b92 in gtk_cell_renderer_render () from /usr/lib/libgtk-x11-2.0.so.0
> > > #13 0x40324cc3 in gtk_tree_view_column_cell_get_size () from /usr/lib/libgtk-x11-2.0.so.0
> > > #14 0x403253ba in _gtk_tree_view_column_cell_render () from /usr/lib/libgtk-x11-2.0.so.0
> > > #15 0x40313ace in gtk_tree_view_get_type () from /usr/lib/libgtk-x11-2.0.so.0
> > > #16 0x4031419a in gtk_tree_view_get_type () from /usr/lib/libgtk-x11-2.0.so.0
> > > #17 0x40274412 in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0
> > > #18 0x404c4205 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
> > > #19 0x404c3e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> > > #20 0x404d731a in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
> > > #21 0x404d5807 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
> > > #22 0x404d5a45 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> > > #23 0x4032ff02 in gtk_widget_send_expose () from /usr/lib/libgtk-x11-2.0.so.0
> > > #24 0x4032fc6a in gtk_widget_send_expose () from /usr/lib/libgtk-x11-2.0.so.0
> > > #25 0x40273266 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
> > > #26 0x403fc2a4 in gdk_window_clear_area_e () from /usr/lib/libgdk-x11-2.0.so.0
> > > #27 0x403fc34d in gdk_window_process_all_updates () from /usr/lib/libgdk-x11-2.0.so.0
> > > #28 0x402268fb in gtk_container_set_reallocate_redraws () from /usr/lib/libgtk-x11-2.0.so.0
> > > #29 0x4051a676 in g_timeout_add () from /usr/lib/libglib-2.0.so.0
> > > #30 0x40517f59 in g_get_current_time () from /usr/lib/libglib-2.0.so.0
> > > #31 0x40518d77 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
> > > #32 0x40519153 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
> > > #33 0x405192d6 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
> > > #34 0x40272c24 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
> > > #35 0x4001f9c5 in process_pending_gtk () from /home/bwalle/src/xfce/xfce-devel/xffm/libs/.libs/libxffm.so.0
> > > #36 0x080666b4 in open_dir (treeview=0x8179a40, iter=0x84435a0, treepath=0x8351d78, user_data=0x8179a40) at callbacks.c:346
> > > #37 0x402752c9 in _gtk_marshal_VOID__BOXED_BOXED () from /usr/lib/libgtk-x11-2.0.so.0
> > > #38 0x404c3e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> > > #39 0x404d6f23 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
> > > #40 0x404d579a in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
> > > #41 0x404d5a45 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> > > #42 0x4031d8a3 in gtk_tree_view_expand_to_path () from /usr/lib/libgtk-x11-2.0.so.0
> > > #43 0x4031236e in gtk_tree_view_get_type () from /usr/lib/libgtk-x11-2.0.so.0
> > > #44 0x40274412 in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0
> > > #45 0x404c4205 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
> > > #46 0x404c3e2b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> > > #47 0x404d731a in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
> > > #48 0x404d5807 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
> > > #49 0x404d5a45 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> > > #50 0x4032ff02 in gtk_widget_send_expose () from /usr/lib/libgtk-x11-2.0.so.0
> > > #51 0x4032fb60 in gtk_widget_event () from /usr/lib/libgtk-x11-2.0.so.0
> > > #52 0x402742c3 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
> > > #53 0x402732ce in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
> > > #54 0x4040a6ad in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0
> > > #55 0x40517f59 in g_get_current_time () from /usr/lib/libglib-2.0.so.0
> > > #56 0x40518d77 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
> > > #57 0x40519153 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
> > > #58 0x4051982f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
> > > #59 0x402729b7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
> > > #60 0x0806c457 in main (argc=1, argv=0xbffff824) at main.c:278
> > > 
> > > 
> > > Regards,
> > > Bernhard
> > > 
> > > _______________________________________________
> > > Xfce4-dev mailing list
> > > Xfce4-dev at xfce.org
> > > http://moongroup.com/mailman/listinfo/xfce4-dev
> > -- 
> > Olivier Fourdan <fourdan at xfce.org>
> > http://www.xfce.org
> > 
> > _______________________________________________
> > Xfce4-dev mailing list
> > Xfce4-dev at xfce.org
> > http://moongroup.com/mailman/listinfo/xfce4-dev
> > 
> 
> 
> _______________________________________________
> Xfce4-dev mailing list
> Xfce4-dev at xfce.org
> http://moongroup.com/mailman/listinfo/xfce4-dev
-- 
Olivier Fourdan <fourdan at xfce.org>
http://www.xfce.org




More information about the Xfce4-dev mailing list