From: <Jo...@bo...> - 2005-08-22 11:17:45
|
> Hi, > > On Fri, 19 Aug 2005 17:24:06 +0200 (CEST) > Jo...@bo... wrote: > >> Hi >> >> I have 2 problems to report. >> The first one is that the procs sent to >> Gtk::Treeveiw::Selection.set_select_function seems to be overwritten in >> some cases if there are multiple treeviews. > > Hmm, this may be a known GC problem. It'll fix Ruby-GNOME2-0.14.0 with > GTK+-2.8.0. > > BTW, patch below may fix this problem, though I don't try it by myself. > I tried the patch, and the problem persists. It may be the old crappy gtk version I'm stuck with. I am a bit too lazy to compile that big beast myself, and since I wont get the root password, I cant upgrade the rpm packages. >> I click aruond a bit in one of them, the contents >> change as expected. Then I switch to another page and try to select an >> item in the other view with attached selection function. I then get a >> "[BUG] Segmentation fault" > > $ gdb ruby > $ run test.rb > (segfault) > $ bt > (print stacktrace) This little beauty pops up. It seems that this one is from the expose, which seems normal, since it happened the first time the widget was shown. I get suspicious when I see the n=-74889133 (which is normally below 5 when the program works normally) at rb_funcall. May this be some kind of stack corruption that depends on this being a x86_64 machine? Or is it just an old buggy gtk version? #0 0x0000000000465929 in st_lookup (table=0x2a95d03470, key=5233, value=0x7fbfff7e88) at st.c:259 #1 0x000000000040d678 in search_method (klass=182971944656, id=5233, origin=0x7fbfff7eb0) at eval.c:436 #2 0x000000000040d6cb in rb_get_method_body (klassp=0x7fbfff7f00, idp=0x7fbfff7f08, noexp=0x7fbfff7f14) at eval.c:450 #3 0x00000000004185fa in rb_call (klass=182971944656, recv=182971944696, mid=5233, argc=4, argv=0x7fbfff7f50, scope=1) at eval.c:5861 #4 0x00000000004189ae in vafuncall (recv=182971944696, mid=5233, n=5233, ar=0x4) at ruby.h:633 #5 0x0000000000418a93 in rb_funcall (recv=5233, mid=5233, n=-74889133) at eval.c:5979 #6 0x0000002a98831402 in selection_func (selection=0x98bc40, model=0x95b750, path=0x2a9d1d2f90, path_currently_selected=0, func=0x2a99fa4ef8) at rbgtktreeselection.c:44 #7 0x0000002a98ae85c6 in _gtk_tree_selection_internal_select_node () from /usr/lib64/libgtk-x11-2.0.so.0 #8 0x0000002a98afe83a in gtk_tree_view_set_reorderable () from /usr/lib64/libgtk-x11-2.0.so.0 #9 0x0000002a98af1979 in gtk_tree_view_get_type () from /usr/lib64/libgtk-x11-2.0.so.0 #10 0x0000002a98a4821d in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib64/libgtk-x11-2.0.so.0 #11 0x0000002a95e268d0 in g_cclosure_new_swap () from /usr/lib64/libgobject-2.0.so.0 #12 0x0000002a95e265b7 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0 #13 0x0000002a95e36f25 in g_signal_emit_by_name () from /usr/lib64/libgobject-2.0.so.0 #14 0x0000002a95e36152 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0 #15 0x0000002a95e36603 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0 #16 0x0000002a98b10d6b in gtk_widget_send_expose () from /usr/lib64/libgtk-x11-2.0.so.0 #17 0x0000002a98a48016 in gtk_propagate_event () from /usr/lib64/libgtk-x11-2.0.so.0 #18 0x0000002a98a470df in gtk_main_do_event () from /usr/lib64/libgtk-x11-2.0.so.0 #19 0x0000002a98d23bcf in _gdk_events_queue () from /usr/lib64/libgdk-x11-2.0.so.0 #20 0x0000002a95f78ac2 in unblock_source () from /usr/lib64/libglib-2.0.so.0 #21 0x0000002a95f79a3c in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #22 0x0000002a95f79d00 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #23 0x0000002a95f7a39a in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0 #24 0x0000002a98a46a10 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0 #25 0x0000002a98836820 in gtk_m_main (self=5233) at rbgtkmain.c:167 #26 0x000000000042499f in call_cfunc (func=0x2a988367f0 <gtk_m_main>, recv=182944258968, len=-74889133, argc=5233, argv=0x1471) at eval.c:5529 #27 0x0000000000417dd1 in rb_call0 (klass=182943762368, recv=182944258968, id=5097, oid=5097, argc=0, argv=0x0, body=0x2a984c4040, nosuper=0) ---Type <return> to continue, or q <return> to quit--- at eval.c:5664 #28 0x00000000004186ce in rb_call (klass=182943762368, recv=182944258968, mid=5097, argc=0, argv=0x0, scope=0) at eval.c:5885 #29 0x000000000041317e in rb_eval (self=182902002400, n=0x1471) at eval.c:3367 #30 0x000000000040f195 in ruby_exec_internal () at eval.c:1538 #31 0x000000000040f1c3 in ruby_exec () at eval.c:1558 #32 0x000000000040f1ed in ruby_run () at eval.c:1568 #33 0x000000000040cfb9 in main (argc=2, argv=0x7fbfff9768, envp=0x87f8b48fb894853) at main.c:46 > > > BTW, this ML is for Bugs tracker of SF. > Please don't send your message here. Well, I consider this stuff bugs, but I may be wrong. If you tell me again I can switch ML. /Johan |