Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Christian (chrisbra)
Assigned to: Nobody/Anonymous (nobody)
Summary: Crash when loading a slideshow
Initial Comment:
Hi,
I started to use imagination and like it so far. I created a nice looking slideshow, but when loading it again, it crashed. This is probably related to 3378140, but since I can't comment there, I'll post the update here.
Error message is:
(imagination:7178): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(imagination:7178): Gtk-CRITICAL **: IA__gtk_tree_model_get_iter_from_string: assertion `path_string != NULL' failed
(imagination:7178): Gtk-CRITICAL **: gtk_tree_store_get_value: assertion `VALID_ITER (iter, tree_store)' failed
(imagination:7178): GLib-GObject-WARNING **: /build/buildd/glib2.0-2.28.6/./gobject/gtype.c:4201: type id `0' is invalid
(imagination:7178): GLib-GObject-WARNING **: can't peek value table for type `<invalid>' which is not currently referenced
zsh: segmentation fault (core dumped) ./imagination ./diashow_crash.img
This also happens with version 2.X that Ubuntu provides in it's repositories. This is a 64bit built, if it matters any.
I think, I could strip down the diashow to the offending slide, so I'll attach it here. I can reproduce the crash with this simple slide. Here is the backtrace I get:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff79afb88 in gtk_tree_model_get_valist () from /usr/lib/libgtk-x11-2.0.so.0
(gdb) bt
#0 0x00007ffff79afb88 in gtk_tree_model_get_valist () from /usr/lib/libgtk-x11-2.0.so.0
#1 0x00007ffff79afe69 in gtk_tree_model_get () from /usr/lib/libgtk-x11-2.0.so.0
#2 0x000000000042ae2f in img_load_slideshow (img=0x718df0, input=0x7fffffffdf8f "./diashow_crash.img")
at slideshow_project.c:421
#3 0x0000000000410bb2 in main (argc=2, argv=0x7fffffffdc58) at imagination.c:63
And here is the proposed patch, that fixes it for me:
1 2128 chrisbra@R500 ~/source/imagination-3.0/src % diff -u slideshow_project.c*
--- slideshow_project.c 2011-07-28 21:10:51.613552842 +0200
+++ slideshow_project.c.new 2011-07-28 21:10:43.153540439 +0200
@@ -417,8 +417,11 @@
/* Get the mem address of the transition */
spath = (gchar *)g_hash_table_lookup( table, GINT_TO_POINTER( transition_id ) );
- gtk_tree_model_get_iter_from_string( model, &iter, spath );
- gtk_tree_model_get( model, &iter, 2, &render, 0, &pix, -1 );
+ if (spath)
+ {
+ gtk_tree_model_get_iter_from_string( model, &iter, spath );
+ gtk_tree_model_get( model, &iter, 2, &render, 0, &pix, -1 );
+ }
slide_info = img_create_new_slide();
if( slide_info )
regards,
Christian
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=1125540&aid=3381290&group_id=244319
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
>Status: Closed
>Resolution: Fixed
----------------------------------------------------------------------
>Comment By: Giuseppe Torelli (gt67)
Date: 2011-07-28 20:31
Message:
Hi Christian,
thank you for your patch. I applied it in SVN revision 611. Bye Giuseppe