diff -u rhythmbox-0.12.8/debian/changelog rhythmbox-0.12.8/debian/changelog --- rhythmbox-0.12.8/debian/changelog +++ rhythmbox-0.12.8/debian/changelog @@ -1,3 +1,10 @@ +rhythmbox (0.12.8-0ubuntu5) lucid-proposed; urgency=low + + * debian/patches/97_git_no_double_deletion.patch + - git change to fix crashes due to double deletion (lp: #569380) + + -- Sebastien Bacher Wed, 19 May 2010 15:43:20 +0200 + rhythmbox (0.12.8-0ubuntu4) lucid-proposed; urgency=low * debian/patches/92_git_mc5_status.patch: only in patch2: unchanged: --- rhythmbox-0.12.8.orig/debian/patches/97_git_no_double_deletion.patch +++ rhythmbox-0.12.8/debian/patches/97_git_no_double_deletion.patch @@ -0,0 +1,44 @@ +From b6fa4439d5b1e0a14d34bf5af09adf5e894208ca Mon Sep 17 00:00:00 2001 +From: Jonathan Matthew +Date: Wed, 19 May 2010 08:39:10 +0000 +Subject: source: protect against repeated deletion (bug #613526) + +Some devices appear and disappear when plugged in, which causes the +corresponding source to be deleted twice - once when the device +disappears and once when the device open operation fails. The easy way +to fix this is just to check that a source hasn't already been deleted +when deleting it. +--- +diff --git a/sources/rb-source.c b/sources/rb-source.c +index 0e174e1..8bbc6d6 100644 +--- a/sources/rb-source.c ++++ b/sources/rb-source.c +@@ -123,6 +123,8 @@ struct _RBSourcePrivate + RBSourceGroup *source_group; + RBPlugin *plugin; + RBSourceSearchType search_type; ++ ++ gboolean deleted; + }; + + enum +@@ -1523,8 +1525,16 @@ void + rb_source_delete_thyself (RBSource *source) + { + RBSourceClass *klass; ++ RBSourcePrivate *priv; + + g_return_if_fail (source != NULL); ++ priv = RB_SOURCE_GET_PRIVATE (source); ++ if (priv->deleted) { ++ rb_debug ("source has already been deleted"); ++ return; ++ } ++ priv->deleted = TRUE; ++ + klass = RB_SOURCE_GET_CLASS (source); + klass->impl_delete_thyself (source); + g_signal_emit (G_OBJECT (source), rb_source_signals[DELETED], 0); +-- +cgit v0.8.3.1 +