After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 665044 - Crash when saving new file
Crash when saving new file
Status: RESOLVED OBSOLETE
Product: glade
Classification: Applications
Component: general
3.8.x
Other Windows
: Normal normal
: ---
Assigned To: Glade 3 Maintainers
Glade 3 Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-11-28 13:33 UTC by Martin Schlemmer
Modified: 2018-03-26 15:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
glade3-3.8.1-null-filename-on-mtime.patch (607 bytes, application/x-download)
2011-11-28 13:33 UTC, Martin Schlemmer
Details

Description Martin Schlemmer 2011-11-28 13:33:13 UTC
Created attachment 202291 [details]
glade3-3.8.1-null-filename-on-mtime.patch

Basically sending a null to g_stat() gets to g_utf8_to_utf16() and do not trigger g_return_val_if_fail() with release build.

Backtrace:

Breakpoint 1, g_return_if_fail_warning (log_domain=0x68694096 "GLib", pretty_function=0x686941f9 "g_utf8_to_utf16",
    expression=0x686940b2 "str != NULL") at gmessages.c:586
586       g_log (log_domain,
(gdb) bt
  • #0 g_return_if_fail_warning
    at gmessages.c line 586
  • #1 g_utf8_to_utf16
    at gutf8.c line 1415
  • #2 g_stat
    at gstdio.c line 473
  • #3 glade_util_get_file_mtime
    at glade-utils.c line 1851
  • #4 save
    at glade-window.c line 1060
  • #5 save_as
    at glade-window.c line 1232
  • #6 save_cb
    at glade-window.c line 1259
  • #7 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 79
  • #8 g_closure_invoke
    at gclosure.c line 767
  • #9 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #10 g_signal_emit_valist
    at gsignal.c line 2983
  • #11 g_signal_emit
    at gsignal.c line 3040
  • #12 _gtk_action_emit_activate
    at gtkaction.c line 794
  • #13 gtk_action_activate
    at gtkaction.c line 824
  • #14 button_clicked
    at gtktoolbutton.c line 771
  • #15 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 79
  • #16 g_closure_invoke
    at gclosure.c line 767
  • #17 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #18 g_signal_emit_valist
    at gsignal.c line 2983
  • #19 g_signal_emit
    at gsignal.c line 3040
  • #20 gtk_button_clicked
    at gtkbutton.c line 1128
  • #21 gtk_real_button_released
    at gtkbutton.c line 1725
  • #22 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 79
  • #23 g_type_class_meta_marshal
    at gclosure.c line 878
  • #24 g_closure_invoke
    at gclosure.c line 767
  • #25 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #26 g_signal_emit_valist
    at gsignal.c line 2983
  • #27 g_signal_emit
    at gsignal.c line 3040
  • #28 gtk_button_released
    at gtkbutton.c line 1120
  • #29 gtk_button_button_release
    at gtkbutton.c line 1617
  • #30 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 86
  • #31 g_type_class_meta_marshal
    at gclosure.c line 878
  • #32 g_closure_invoke
    at gclosure.c line 767
  • #33 signal_emit_unlocked_R
    at gsignal.c line 3290
  • #34 g_signal_emit_valist
    at gsignal.c line 2993
  • #35 g_signal_emit
    at gsignal.c line 3040
  • #36 gtk_widget_event_internal
    at gtkwidget.c line 4984
  • #37 gtk_widget_event
    at gtkwidget.c line 4781
  • #38 gtk_propagate_event
    at gtkmain.c line 2489
  • #39 gtk_main_do_event
    at gtkmain.c line 1684
  • #40 gdk_event_dispatch
    at gdkevents-win32.c line 3605
  • #41 g_main_dispatch
    at gmain.c line 2441
  • #42 g_main_context_dispatch
    at gmain.c line 3014
  • #43 g_main_context_iterate
    at gmain.c line 3092
  • #44 g_main_loop_run
    at gmain.c line 3300
  • #45 gtk_main
    at gtkmain.c line 1256
  • #46 main
    at main.c line 185

Comment 1 Tristan Van Berkom 2011-11-28 13:40:09 UTC
Thanks for reporting.

Just curiously, how is this a crash and not a runtime warning ??

g_return_val_if_fail() statements are not compiled out of GLib
production builds, if it were the case we would have lots of problems...
Comment 2 Martin Schlemmer 2011-11-28 13:46:50 UTC
Seems that Glib defines G_DISABLE_CHECKS with --enable-debug=yes which causes the g_return_*() macros to become NOPs. 2.28.8 anyhow - not sure with 2.30, as I need to patch libglade to work with it.
Comment 3 Martin Schlemmer 2011-11-28 13:47:10 UTC
That should be: --enable-debug=no
Comment 4 Martin Schlemmer 2011-11-28 13:51:54 UTC
Just say if that is the wrong thing to do, as I am currently trying to debug a problem when using the Tool/Menu Bar editors and changing the type, that button_editor->loaded_widget->project is NULL. It does not seem to be an issue in general, but once again g_return_*() do not return and ...
Comment 5 Tristan Van Berkom 2011-11-28 14:12:56 UTC
(In reply to comment #4)
> Just say if that is the wrong thing to do, as I am currently trying to debug a
> problem when using the Tool/Menu Bar editors and changing the type, that
> button_editor->loaded_widget->project is NULL. It does not seem to be an issue
> in general, but once again g_return_*() do not return and ...

It's the wrong thing to do ;-)

I was not aware of the exact configure flag which does that but you
can read up on it here:
    http://developer.gnome.org/glib/2.30/glib-building.html

Quoted from above link:

"Note that 'no' is fast, but dangerous as it tends to destabilize even mostly bug-free software by changing the effect of many bugs from simple warnings into fatal crashes. Thus --enable-debug=no should not be used for stable releases of GLib."

And quoting Matthias just now on irc ;-)

<mclasen> nobody should build with --enable-debug=no, ever
Comment 6 Martin Schlemmer 2011-11-28 14:34:20 UTC
Figures =) Think I added that to my build scripts sometime when switching between stripping with some CFLAGS, or no stripping with -g, but haven't read the building docs in a while.

Guess the point is moot then, and the bug can be closed.

Just a last question, like mentioned above, when changing a Tool/Menu Button's type via the editor
- during the Delete/Add of the old/new widget
- project_changed() gets called then glade_editable_load(), etc.
- leading to glade_tool_button_editor_load() and glade_activatable_editor_load() trying to access activatable_editor->loaded_widget->project
- and later lade_project_get_format() and glade_eprop_object_load() similar

Is project supposed to be not set, or should I add a bug for that? Its quite a few warnings and critical errors (a few backtraces below):

-----------
(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion
`G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_ref: assertion `G_I
S_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion
`G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_ref: assertion `G_I
S_OBJECT (object)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion
`G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_ref: assertion `G_I
S_OBJECT (object)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion
`G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_ref: assertion `G_I
S_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion
`G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_ref: assertion `G_I
S_OBJECT (object)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion
`G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_ref: assertion `G_I
S_OBJECT (object)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion
`G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_ref: assertion `G_I
S_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion
`G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_ref: assertion `G_I
S_OBJECT (object)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion
`G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_ref: assertion `G_I
S_OBJECT (object)' failed

(glade-3.exe:14976): GladeUI-CRITICAL **: glade_project_get_format: assertion `G
LADE_IS_PROJECT (project)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed

(glade-3.exe:14976): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matc
hed: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(glade-3.exe:14976): GLib-GObject-CRITICAL **: g_object_weak_unref: assertion `G
_IS_OBJECT (object)' failed
-----------

First (delete):

Breakpoint 1, g_return_if_fail_warning (log_domain=0x63a71d30 "GLib-GObject",
    pretty_function=0x63a731e0 "g_signal_handlers_disconnect_matched",
    expression=0x63a71ebc "G_TYPE_CHECK_INSTANCE (instance)") at gmessages.c:586
586       g_log (log_domain,
(gdb) bt
  • #0 g_return_if_fail_warning
  • #1 g_signal_handlers_disconnect_matched
    at gsignal.c line 2672
  • #2 glade_tool_button_editor_load
    at glade-tool-button-editor.c line 96
  • #3 glade_editable_load
    at glade-editable.c line 80
  • #4 project_changed
    at glade-tool-button-editor.c line 69
  • #5 glade_marshal_VOID__OBJECT_BOOLEAN
    at glade-marshallers.c line 278
  • #6 g_closure_invoke
    at gclosure.c line 767
  • #7 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #8 g_signal_emit_valist
    at gsignal.c line 2983
  • #9 g_signal_emit
    at gsignal.c line 3040
  • #10 glade_project_push_undo_impl
    at glade-project.c line 588
  • #11 glade_project_push_undo
    at glade-project.c line 3576
  • #12 glade_command_remove
    at glade-command.c line 1241
  • #13 glade_command_delete
    at glade-command.c line 1763
  • #14 glade_gtk_menu_shell_delete_child
    at glade-gtk.c line 6677
  • #15 glade_marshal_BOOLEAN__OBJECT_OBJECT
    at glade-marshallers.c line 783
  • #16 g_closure_invoke
    at gclosure.c line 767
  • #17 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #18 g_signal_emit_valist
    at gsignal.c line 2993
  • #19 g_signal_emit
    at gsignal.c line 3040
  • #20 glade_base_editor_delegate_delete_child
    at glade-base-editor.c line 339
  • #21 glade_base_editor_change_type
    at glade-base-editor.c line 1361
  • #22 glade_marshal_BOOLEAN__OBJECT_UINT
    at glade-marshallers.c line 736
  • #23 g_type_class_meta_marshal
    at gclosure.c line 878
  • #24 g_closure_invoke
    at gclosure.c line 767
  • #25 signal_emit_unlocked_R
    at gsignal.c line 3290
  • #26 g_signal_emit_valist
    at gsignal.c line 2993
  • #27 g_signal_emit
    at gsignal.c line 3040
  • #28 glade_base_editor_child_change_type
    at glade-base-editor.c line 562
  • #29 glade_base_editor_type_changed
    at glade-base-editor.c line 589
  • #30 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 79
  • #31 g_closure_invoke
    at gclosure.c line 767
  • #32 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #33 g_signal_emit_valist
    at gsignal.c line 2983
  • #34 g_signal_emit
    at gsignal.c line 3040
  • #35 gtk_combo_box_set_active_internal
    at gtkcombobox.c line 5155
  • #36 gtk_combo_box_set_active_iter
    at gtkcombobox.c line 5211
  • #37 gtk_combo_box_list_button_released
    at gtkcombobox.c line 4137
  • #38 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 86
  • #39 g_closure_invoke
    at gclosure.c line 767
  • #40 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #41 g_signal_emit_valist
    at gsignal.c line 2993
  • #42 g_signal_emit
    at gsignal.c line 3040
  • #43 gtk_widget_event_internal
    at gtkwidget.c line 4984
  • #44 gtk_widget_event
    at gtkwidget.c line 4781
  • #45 gtk_propagate_event
    at gtkmain.c line 2489
  • #46 gtk_main_do_event
    at gtkmain.c line 1684
  • #47 gdk_event_dispatch
    at gdkevents-win32.c line 3605
  • #48 g_main_dispatch
    at gmain.c line 2441
  • #49 g_main_context_dispatch
    at gmain.c line 3014
  • #50 g_main_context_iterate
    at gmain.c line 3092
  • #51 g_main_loop_run
    at gmain.c line 3300
  • #52 gtk_main
    at gtkmain.c line 1256
  • #53 main
    at main.c line 185
  • #0 g_return_if_fail_warning
  • #1 glade_project_get_format
    at glade-project.c line 3931
  • #2 glade_eprop_object_load
    at glade-editor-property.c line 3084
  • #3 glade_editor_property_load
    at glade-editor-property.c line 3743
  • #4 glade_editor_property_load_by_widget
    at glade-editor-property.c line 3773
  • #5 glade_activatable_editor_load
    at glade-activatable-editor.c line 125
  • #6 glade_editable_load
    at glade-editable.c line 80
  • #7 glade_tool_button_editor_load
    at glade-tool-button-editor.c line 122
  • #8 glade_editable_load
    at glade-editable.c line 80
  • #9 project_changed
    at glade-tool-button-editor.c line 69
  • #10 glade_marshal_VOID__OBJECT_BOOLEAN
    at glade-marshallers.c line 278
  • #11 g_closure_invoke
    at gclosure.c line 767
  • #12 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #13 g_signal_emit_valist
    at gsignal.c line 2983
  • #14 g_signal_emit
    at gsignal.c line 3040
  • #15 glade_project_push_undo_impl
    at glade-project.c line 588
  • #16 glade_project_push_undo
    at glade-project.c line 3576
  • #17 glade_command_remove
    at glade-command.c line 1241
  • #18 glade_command_delete
    at glade-command.c line 1763
  • #19 glade_gtk_menu_shell_delete_child
    at glade-gtk.c line 6677
  • #20 glade_marshal_BOOLEAN__OBJECT_OBJECT
    at glade-marshallers.c line 783
  • #21 g_closure_invoke
    at gclosure.c line 767
  • #22 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #23 g_signal_emit_valist
    at gsignal.c line 2993
  • #24 g_signal_emit
    at gsignal.c line 3040
  • #25 glade_base_editor_delegate_delete_child
    at glade-base-editor.c line 339
  • #26 glade_base_editor_change_type
    at glade-base-editor.c line 1361
  • #27 glade_marshal_BOOLEAN__OBJECT_UINT
    at glade-marshallers.c line 736
  • #28 g_type_class_meta_marshal
    at gclosure.c line 878
  • #29 g_closure_invoke
    at gclosure.c line 767
  • #30 signal_emit_unlocked_R
    at gsignal.c line 3290
  • #31 g_signal_emit_valist
    at gsignal.c line 2993
  • #32 g_signal_emit
    at gsignal.c line 3040
  • #33 glade_base_editor_child_change_type
    at glade-base-editor.c line 562
  • #34 glade_base_editor_type_changed
    at glade-base-editor.c line 589
  • #35 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 79
  • #36 g_closure_invoke
    at gclosure.c line 767
  • #37 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #38 g_signal_emit_valist
    at gsignal.c line 2983
  • #39 g_signal_emit
    at gsignal.c line 3040
  • #40 gtk_combo_box_set_active_internal
    at gtkcombobox.c line 5155
  • #41 gtk_combo_box_set_active_iter
    at gtkcombobox.c line 5211
  • #42 gtk_combo_box_list_button_released
    at gtkcombobox.c line 4137
  • #43 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 86
  • #44 g_closure_invoke
    at gclosure.c line 767
  • #45 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #46 g_signal_emit_valist
    at gsignal.c line 2993
  • #47 g_signal_emit
    at gsignal.c line 3040
  • #48 gtk_widget_event_internal
    at gtkwidget.c line 4984
  • #49 gtk_widget_event
    at gtkwidget.c line 4781
  • #50 gtk_propagate_event
    at gtkmain.c line 2489
  • #51 gtk_main_do_event
    at gtkmain.c line 1684
  • #52 gdk_event_dispatch
    at gdkevents-win32.c line 3605
  • #53 g_main_dispatch
    at gmain.c line 2441
  • #54 g_main_context_dispatch
    at gmain.c line 3014
  • #55 g_main_context_iterate
    at gmain.c line 3092
  • #56 g_main_loop_run
    at gmain.c line 3300
  • #57 gtk_main
    at gtkmain.c line 1256
  • #58 main
    at main.c line 185
  • #0 g_return_if_fail_warning
  • #1 g_signal_handlers_disconnect_matched
    at gsignal.c line 2672
  • #2 glade_tool_button_editor_load
    at glade-tool-button-editor.c line 96
  • #3 glade_editable_load
    at glade-editable.c line 80
  • #4 project_changed
    at glade-tool-button-editor.c line 69
  • #5 glade_marshal_VOID__OBJECT_BOOLEAN
    at glade-marshallers.c line 278
  • #6 g_closure_invoke
    at gclosure.c line 767
  • #7 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #8 g_signal_emit_valist
    at gsignal.c line 2983
  • #9 g_signal_emit
    at gsignal.c line 3040
  • #10 glade_project_push_undo_impl
    at glade-project.c line 588
  • #11 glade_project_push_undo
    at glade-project.c line 3576
  • #12 glade_command_add
    at glade-command.c line 1086
  • #13 glade_command_create
    at glade-command.c line 1740
  • #14 glade_gtk_menu_shell_build_child
    at glade-gtk.c line 6638
  • #15 glade_marshal_OBJECT__OBJECT_UINT
    at glade-marshallers.c line 413
  • #16 g_closure_invoke
    at gclosure.c line 767
  • #17 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #18 g_signal_emit_valist
    at gsignal.c line 2993
  • #19 g_signal_emit
    at gsignal.c line 3040
  • #20 glade_base_editor_delegate_build_child
    at glade-base-editor.c line 327
  • #21 glade_base_editor_change_type
    at glade-base-editor.c line 1364
  • #22 glade_marshal_BOOLEAN__OBJECT_UINT
    at glade-marshallers.c line 736
  • #23 g_type_class_meta_marshal
    at gclosure.c line 878
  • #24 g_closure_invoke
    at gclosure.c line 767
  • #25 signal_emit_unlocked_R
    at gsignal.c line 3290
  • #26 g_signal_emit_valist
    at gsignal.c line 2993
  • #27 g_signal_emit
    at gsignal.c line 3040
  • #28 glade_base_editor_child_change_type
    at glade-base-editor.c line 562
  • #29 glade_base_editor_type_changed
    at glade-base-editor.c line 589
  • #30 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 79
  • #31 g_closure_invoke
    at gclosure.c line 767
  • #32 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #33 g_signal_emit_valist
    at gsignal.c line 2983
  • #34 g_signal_emit
    at gsignal.c line 3040
  • #35 gtk_combo_box_set_active_internal
    at gtkcombobox.c line 5155
  • #36 gtk_combo_box_set_active_iter
    at gtkcombobox.c line 5211
  • #37 gtk_combo_box_list_button_released
    at gtkcombobox.c line 4137
  • #38 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 86
  • #39 g_closure_invoke
    at gclosure.c line 767
  • #40 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #41 g_signal_emit_valist
    at gsignal.c line 2993
  • #42 g_signal_emit
    at gsignal.c line 3040
  • #43 gtk_widget_event_internal
    at gtkwidget.c line 4984
  • #44 gtk_widget_event
    at gtkwidget.c line 4781
  • #45 gtk_propagate_event
    at gtkmain.c line 2489
  • #46 gtk_main_do_event
    at gtkmain.c line 1684
  • #47 gdk_event_dispatch
    at gdkevents-win32.c line 3605
  • #48 g_main_dispatch
    at gmain.c line 2441
  • #49 g_main_context_dispatch
    at gmain.c line 3014
  • #50 g_main_context_iterate
    at gmain.c line 3092
  • #51 g_main_loop_run
    at gmain.c line 3300
  • #52 gtk_main
    at gtkmain.c line 1256
  • #53 main
    at main.c line 185

Comment 7 Tristan Van Berkom 2011-11-28 14:43:02 UTC
(In reply to comment #6)
> Figures =) Think I added that to my build scripts sometime when switching
> between stripping with some CFLAGS, or no stripping with -g, but haven't read
> the building docs in a while.
> 
> Guess the point is moot then, and the bug can be closed.

Not exactly moot, but at least not a 'crasher' ;-)

Probably the "Save" button should be insensitive while there is no
text in the filechooser dialog entry...

> Just a last question, like mentioned above, when changing a Tool/Menu Button's
> type via the editor
> - during the Delete/Add of the old/new widget
> - project_changed() gets called then glade_editable_load(), etc.
> - leading to glade_tool_button_editor_load() and
> glade_activatable_editor_load() trying to access
> activatable_editor->loaded_widget->project
> - and later lade_project_get_format() and glade_eprop_object_load() similar
> 
> Is project supposed to be not set, or should I add a bug for that? Its quite a
> few warnings and critical errors (a few backtraces below):

The project will inevitably be unset after removing a widget from a project,
this is a change from Glade 3.6.x software which is a cleanup and improvement
for the most part, but could have bad consequences for some unsuspecting
higher-level editors (like apparently this one).

To address a similar problem, glade_command_add() has been newly exposed
to help cope with "Context Menu -> Add Parent / Remove Parent" actions,
I don't think that's relevant for changing types... possibly the type
changing code in glade-base-editor.c needs to be upgraded to save the
project pointer or such... (don't let this text throw you off or confuse
you too much... I would need to look at this type-changing bug closer
to really have an opinion on how to fix it...).
Comment 8 Martin Schlemmer 2011-11-28 15:05:44 UTC
(In reply to comment #7)
> (In reply to comment #6)
> > Figures =) Think I added that to my build scripts sometime when switching
> > between stripping with some CFLAGS, or no stripping with -g, but haven't read
> > the building docs in a while.
> > 
> > Guess the point is moot then, and the bug can be closed.
> 
> Not exactly moot, but at least not a 'crasher' ;-)
> 
> Probably the "Save" button should be insensitive while there is no
> text in the filechooser dialog entry...
> 

It was not with an empty entry :)

Its because of this code (first call):

----- glade-window.c ------
	/* check for external modification to the project file */
	mtime = glade_util_get_file_mtime (glade_project_get_path (project), NULL);
	 
	if (mtime > glade_project_get_file_mtime (project)) {
-----------

which gets called with:

 project->priv->path = NULL

because the path is not yet set in the private data.

I do not think you will get it (or any message for that matter) on Linux, as it does not make the call to g_utf8_to_utf16() as needed for _wstat() on win32.

> > Just a last question, like mentioned above, when changing a Tool/Menu Button's
> > type via the editor
> > - during the Delete/Add of the old/new widget
> > - project_changed() gets called then glade_editable_load(), etc.
> > - leading to glade_tool_button_editor_load() and
> > glade_activatable_editor_load() trying to access
> > activatable_editor->loaded_widget->project
> > - and later lade_project_get_format() and glade_eprop_object_load() similar
> > 
> > Is project supposed to be not set, or should I add a bug for that? Its quite a
> > few warnings and critical errors (a few backtraces below):
> 
> The project will inevitably be unset after removing a widget from a project,
> this is a change from Glade 3.6.x software which is a cleanup and improvement
> for the most part, but could have bad consequences for some unsuspecting
> higher-level editors (like apparently this one).
> 
> To address a similar problem, glade_command_add() has been newly exposed
> to help cope with "Context Menu -> Add Parent / Remove Parent" actions,
> I don't think that's relevant for changing types... possibly the type
> changing code in glade-base-editor.c needs to be upgraded to save the
> project pointer or such... (don't let this text throw you off or confuse
> you too much... I would need to look at this type-changing bug closer
> to really have an opinion on how to fix it...).

No problem. Let me know if I should file an additional bug report or not.

Or if you fix it for the 3.10 branch, but the 3.8 one do not get updated, let me know - I might be able to backport it then, as last I checked GTK3 was still a bit flaky on win32.
Comment 9 GNOME Infrastructure Team 2018-03-26 15:22:28 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/glade/issues/98.