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);
     }

Reply via email to