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 624432 - GtkRadioMenuItem is broken
GtkRadioMenuItem is broken
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: Other
2.90.x
Other Linux
: Normal blocker
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2010-07-15 08:25 UTC by Frederic Peters
Modified: 2010-07-19 14:17 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Add _gtk_check_menu_item_set_active() internal function (2.54 KB, patch)
2010-07-15 15:01 UTC, Javier Jardón (IRC: jjardon)
committed Details | Review

Description Frederic Peters 2010-07-15 08:25:28 UTC
Creating a GtkRadioMenuItem creates a signal infinite loop; part of the stacktrace from gtk-demo ("Menus"):

0x00007ffff5ee51b8 in type_check_is_value_type_U (type=Cannot access memory at address 0x7fffff7fefd8
) at gtype.c:4067
4067	{
(gdb) bt
  • #0 type_check_is_value_type_U
    at gtype.c line 4067
  • #1 g_type_check_value
    at gtype.c line 4115
  • #2 g_value_peek_pointer
    at gvalue.c line 315
  • #3 g_type_class_meta_marshal
    at gclosure.c line 874
  • #4 g_closure_invoke
    at gclosure.c line 766
  • #5 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #6 g_signal_emit_valist
    at gsignal.c line 2983
  • #7 g_signal_emit
    at gsignal.c line 3040
  • #8 gtk_menu_item_activate
    at gtkmenuitem.c line 868
  • #9 gtk_check_menu_item_set_active
    at gtkcheckmenuitem.c line 263
  • #10 gtk_radio_menu_item_activate
    at gtkradiomenuitem.c line 489
  • #11 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 79
  • #12 g_type_class_meta_marshal
    at gclosure.c line 877
  • #13 g_closure_invoke
    at gclosure.c line 766
  • #14 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #15 g_signal_emit_valist
    at gsignal.c line 2983
  • #16 g_signal_emit
    at gsignal.c line 3040
  • #17 gtk_menu_item_activate
    at gtkmenuitem.c line 868
  • #18 gtk_check_menu_item_set_active
    at gtkcheckmenuitem.c line 263
  • #19 gtk_radio_menu_item_activate
    at gtkradiomenuitem.c line 489
  • #20 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 79
  • #21 g_type_class_meta_marshal
    at gclosure.c line 877
  • #22 g_closure_invoke
    at gclosure.c line 766
  • #23 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #24 g_signal_emit_valist
    at gsignal.c line 2983
  • #25 g_signal_emit
    at gsignal.c line 3040

Comment 1 Frederic Peters 2010-07-15 09:06:47 UTC
git bisect points 94fd7a350288b73aeffec44fb3b18ca8a061e045 as being the culprit.
Comment 2 Javier Jardón (IRC: jjardon) 2010-07-15 15:01:32 UTC
Created attachment 165970 [details] [review]
Add _gtk_check_menu_item_set_active() internal function

gtk_check_menu_item_set_active() doesn't only touch the priv->active var in GtkCheckMenuItem (As gtk_check_menu_item_get_active() does).
Comment 3 Javier Jardón (IRC: jjardon) 2010-07-19 14:17:05 UTC
Comment on attachment 165970 [details] [review]
Add _gtk_check_menu_item_set_active() internal function

committed a modified patch documenting the private function

commit 9ee3d73a19f71492b6cba77b1e9fa42e3461fdd3
Comment 4 Javier Jardón (IRC: jjardon) 2010-07-19 14:17:25 UTC
This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.