Package: libgtk-3-0 Version: 3.4.2-6 Severity: normal Tags: patch Dear Maintainer,
An instance of GtkAdjustment may be used by another instance after the spin button widget is destroyed. In that case, the function "gtk_spin_button_accessible_value_changed()" will be called with an invalid argument. This situation is often caused when one use GtkCellRendererSpin object. To avoid invalid call of the function, the signal handler for the "value- changed" signal should be disconnected when the spin-button widget is destroyed. I found that ngraph-gtk is sometimes crashed because of this bug. The bug is already fixed in the upstream (https://bugzilla.gnome.org/show_bug.cgi?id=691592), however, I think the bug should be fixed in the version libgtk-3-0 3.4.2-6. The attached patch improve the behavior. Tanks. Hiroyuki Ito -- System Information: Debian Release: 7.0 APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=ja_JP.utf8, LC_CTYPE=ja_JP.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libgtk-3-0 depends on: ii libatk1.0-0 2.4.0-2 ii libc6 2.13-38 ii libcairo-gobject2 1.12.2-3 ii libcairo2 1.12.2-3 ii libcolord1 0.1.21-1 ii libcomerr2 1.42.5-1 ii libcups2 1.5.3-2.15 ii libfontconfig1 2.9.0-7.1 ii libfreetype6 2.4.9-1.1 ii libgcrypt11 1.5.0-5 ii libgdk-pixbuf2.0-0 2.26.1-1 ii libglib2.0-0 2.33.12+really2.32.4-5 ii libgnutls26 2.12.20-4 ii libgssapi-krb5-2 1.10.1+dfsg-4 ii libgtk-3-common 3.4.2-6 ii libk5crypto3 1.10.1+dfsg-4 ii libkrb5-3 1.10.1+dfsg-4 ii libpango1.0-0 1.30.0-1 ii libx11-6 2:1.5.0-1 ii libxcomposite1 1:0.4.3-2 ii libxcursor1 1:1.1.13-1 ii libxdamage1 1:1.1.3-2 ii libxext6 2:1.3.1-2 ii libxfixes3 1:5.0-4 ii libxi6 2:1.6.1-1 ii libxinerama1 2:1.1.2-1 ii libxrandr2 2:1.3.2-2 ii multiarch-support 2.13-38 ii shared-mime-info 1.0-1+b1 ii zlib1g 1:1.2.7.dfsg-13 Versions of packages libgtk-3-0 recommends: ii hicolor-icon-theme 0.12-1 ii libgtk-3-bin 3.4.2-6 Versions of packages libgtk-3-0 suggests: ii gvfs 1.12.3-4 ii librsvg2-common 2.36.1-1
--- gtk/a11y/gtkspinbuttonaccessible.c.org 2013-03-16 18:59:49.129805675 +0900 +++ gtk/a11y/gtkspinbuttonaccessible.c 2013-03-16 19:00:35.917803706 +0900 @@ -51,7 +51,7 @@ adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (data)); if (adjustment) - g_signal_connect (adjustment, + g_signal_connect_object (adjustment, "value-changed", G_CALLBACK (gtk_spin_button_accessible_value_changed), obj); @@ -71,7 +71,7 @@ GtkAdjustment* adjustment; adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget)); - g_signal_connect (adjustment, "value-changed", + g_signal_connect_object (adjustment, "value-changed", G_CALLBACK (gtk_spin_button_accessible_value_changed), spin_button); }