[banshee] [PlayQueueSource] add disposal-aware Clear ()
- From: Aaron Bockover <abock src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [banshee] [PlayQueueSource] add disposal-aware Clear ()
- Date: Wed, 17 Feb 2010 01:42:10 +0000 (UTC)
commit 6a6a3c1aab1ee85e91d7e08a1528b4620f1684df
Author: Aaron Bockover <abockover novell com>
Date: Tue Feb 16 20:52:29 2010 -0500
[PlayQueueSource] add disposal-aware Clear ()
Crash is possible on shutdown when disposing since some services may
have already been disposed. If we are disposing, we don't need to be
as thorough when cleaning up - that is, only Clear persistent state.
.../Banshee.PlayQueue/PlayQueueSource.cs | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
---
diff --git a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
index 5877a3a..2f3aadb 100644
--- a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
+++ b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
@@ -339,6 +339,11 @@ namespace Banshee.PlayQueue
public void Clear ()
{
+ Clear (false);
+ }
+
+ private void Clear (bool disposing)
+ {
ServiceManager.DbConnection.Execute (@"
DELETE FROM CorePlaylistEntries
WHERE PlaylistID = ?", DbId
@@ -346,6 +351,10 @@ namespace Banshee.PlayQueue
offset = 0;
SetCurrentTrack (null);
+ if (disposing) {
+ return;
+ }
+
if (this == ServiceManager.PlaybackController.Source && ServiceManager.PlayerEngine.IsPlaying ()) {
ServiceManager.PlayerEngine.Close();
}
@@ -375,7 +384,7 @@ namespace Banshee.PlayQueue
}
if (!Populate && ClearOnQuitSchema.Get ()) {
- Clear ();
+ Clear (true);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]