[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

please accept xfce4-places-plugin 1.1.0-2



Hi,

xfce4-places-plugin 1.1.0-2 fixes a 100% reproducible segfault at exit.
The debdiff is attached, and it'd be nice to have it in Lenny.

Cheers,
-- 
Yves-Alexis
diff -u xfce4-places-plugin-1.1.0/debian/rules xfce4-places-plugin-1.1.0/debian/rules
--- xfce4-places-plugin-1.1.0/debian/rules
+++ xfce4-places-plugin-1.1.0/debian/rules
@@ -1,6 +1,8 @@
 #!/usr/bin/make -f
 # -*- makefile -*-
 
+include /usr/share/quilt/quilt.make
+
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
@@ -8,7 +10,7 @@
 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 
 
-config.status: configure
+config.status: patch configure
 	dh_testdir
 	./configure \
 		--host=$(DEB_HOST_GNU_TYPE) \
@@ -25,7 +27,7 @@
 
 	touch $@
 
-clean:
+clean: unpatch
 	dh_testdir
 	dh_testroot
 
diff -u xfce4-places-plugin-1.1.0/debian/changelog xfce4-places-plugin-1.1.0/debian/changelog
--- xfce4-places-plugin-1.1.0/debian/changelog
+++ xfce4-places-plugin-1.1.0/debian/changelog
@@ -1,3 +1,16 @@
+xfce4-places-plugin (1.1.0-2) unstable; urgency=low
+
+  * debian/patches:
+    - 01_fix-segfault-exit added, fix segfaults at exit 
+      (Xfce Goodies r6151)                                  closes: #498009
+  * debian/control:
+    - update standards version to 3.8.0.
+    - add build-dep on quilt.
+  * debian/rules:
+    - include quilt rules.
+
+ -- Yves-Alexis Perez <corsac@debian.org>  Sun, 23 Nov 2008 13:55:00 +0100
+
 xfce4-places-plugin (1.1.0-1) unstable; urgency=low
 
   * New upstream release.
diff -u xfce4-places-plugin-1.1.0/debian/control xfce4-places-plugin-1.1.0/debian/control
--- xfce4-places-plugin-1.1.0/debian/control
+++ xfce4-places-plugin-1.1.0/debian/control
@@ -7,8 +7,8 @@
  libgtk2.0-dev (>= 2.6.0), libxfce4util-dev (>= 4.3.99.1),
  xfce4-panel-dev (>= 4.3.99.1), libxfcegui4-dev (>= 4.3.99.1),
  libthunar-vfs-1-dev (>= 0.4.0), libexo-0.3-dev (>= 0.3.1.10),
- libxml-parser-perl
-Standards-Version: 3.7.3
+ libxml-parser-perl, quilt
+Standards-Version: 3.8.0
 Homepage: http://goodies.xfce.org/projects/panel-plugins/xfce4-places-plugin
 Vcs-Svn: svn://svn.debian.org/svn/pkg-xfce/goodies/xfce4-places-plugin/
 Vcs-Browser: http://svn.debian.org/wsvn/pkg-xfce/goodies/xfce4-places-plugin/
only in patch2:
unchanged:
--- xfce4-places-plugin-1.1.0.orig/debian/patches/series
+++ xfce4-places-plugin-1.1.0/debian/patches/series
@@ -0,0 +1 @@
+01_fix-segfault-exit.patch
only in patch2:
unchanged:
--- xfce4-places-plugin-1.1.0.orig/debian/patches/01_fix-segfault-exit.patch
+++ xfce4-places-plugin-1.1.0/debian/patches/01_fix-segfault-exit.patch
@@ -0,0 +1,81 @@
+commit 1b061e0b1fce95840193ba0e08d4320410d6f3b9
+Author: ongardie <ongardie@6bd62a53-d0f8-0310-92b8-b27fb566919e>
+Date:   Fri Nov 21 19:19:51 2008 +0000
+
+    button.{c,h}: Fix warnings and segfault on plugin exit
+    
+    The warnings were caused by theme-changed after dispose. This would in
+    turn call places_button_resize, which expected the reference to the
+    plugin to be non-NULL.
+    
+    To fix this, button.c now disconnects its signal handlers on dispose and
+    also handles a non-NULL plugin reference in places_button_resize.
+    
+    These fixes had the side effect of not corrupting the view's memory.
+    
+    git-svn-id: http://svn.xfce.org/svn/goodies/xfce4-places-plugin/trunk@6151 6bd62a53-d0f8-0310-92b8-b27fb566919e
+
+diff --git a/panel-plugin/button.c b/panel-plugin/button.c
+index 8b439dc..bf6ab5f 100644
+--- a/panel-plugin/button.c
++++ b/panel-plugin/button.c
+@@ -262,9 +262,9 @@ places_button_construct(PlacesButton *self, XfcePanelPlugin *plugin)
+     g_signal_connect(G_OBJECT(plugin), "size-changed",
+                      G_CALLBACK(places_button_size_changed), self);
+ 
+-    g_signal_connect(G_OBJECT(self), "style-set",
++    self->style_set_id = g_signal_connect(G_OBJECT(self), "style-set",
+                      G_CALLBACK(places_button_theme_changed), NULL);
+-    g_signal_connect(G_OBJECT(self), "screen-changed",
++    self->screen_changed_id = g_signal_connect(G_OBJECT(self), "screen-changed",
+                      G_CALLBACK(places_button_theme_changed), NULL);
+ 
+ }
+@@ -288,6 +288,16 @@ places_button_dispose(GObject *object)
+ {
+     PlacesButton *self = PLACES_BUTTON(object);
+ 
++    if (self->style_set_id != 0) {
++        g_signal_handler_disconnect(self, self->style_set_id);
++        self->style_set_id = 0;
++    }
++
++    if (self->screen_changed_id != 0) {
++        g_signal_handler_disconnect(self, self->screen_changed_id);
++        self->screen_changed_id = 0;
++    }
++
+     if (self->plugin != NULL) {
+         g_object_unref(self->plugin);
+         self->plugin = NULL;
+@@ -393,6 +403,9 @@ places_button_resize(PlacesButton *self)
+     gint button_width, button_height;
+     gint box_width,    box_height;
+ 
++    if (self->plugin == NULL)
++        return;
++
+     new_size = xfce_panel_plugin_get_size(self->plugin);
+     self->plugin_size = new_size;
+     DBG("Panel size: %d", new_size);
+@@ -440,7 +453,6 @@ places_button_resize(PlacesButton *self)
+             total_height += label_height;
+         }
+     }
+-
+     /* at this point, total width and height reflect just image and label */
+     /* now, add on the button and box overhead */
+     total_width  += button_width;
+diff --git a/panel-plugin/button.h b/panel-plugin/button.h
+index e35205c..87713f1 100644
+--- a/panel-plugin/button.h
++++ b/panel-plugin/button.h
+@@ -51,6 +51,8 @@ struct _PlacesButton
+     gchar *label_text;
+     places_button_image_pixbuf_factory *pixbuf_factory;
+     gint plugin_size;
++    gulong style_set_id;
++    gulong screen_changed_id;
+ };
+ 
+ struct _PlacesButtonClass

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: