commit cb7474e586b3cd8c8b56d7bdda91062fe1e6a1b3
Author: Christophe Fergeau <[email protected]>
Date: Fri Apr 2 00:05:57 2010 +0200
be more robust against repeated call to itdb_start/stop_sync
calling itdb_start_sync several times without calling itdb_stop_sync
in the mean time would leak memory. Also, if itdb_start_sync hasn't
been called before calling itdb_stop_sync, immediatly fail after
displaying a warning.
src/itdb_itunesdb.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
---
diff --git a/src/itdb_itunesdb.c b/src/itdb_itunesdb.c
index 96d1b9d..c889548 100644
--- a/src/itdb_itunesdb.c
+++ b/src/itdb_itunesdb.c
@@ -5883,6 +5883,11 @@ gboolean itdb_start_sync (Itdb_iTunesDB *itdb)
g_return_val_if_fail (itdb->device->iphone_sync_context == NULL, FALSE);
if (itdb_device_is_iphone_family (itdb->device)) {
int sync_status;
+
+ if (itdb->device->iphone_sync_context != NULL) {
+ /* already locked */
+ return TRUE;
+ }
sync_status = itdb_iphone_start_sync (itdb->device,
&itdb->device->iphone_sync_context);
if (sync_status == 0) {
@@ -5912,6 +5917,10 @@ gboolean itdb_stop_sync (Itdb_iTunesDB *itdb)
#ifdef HAVE_LIBIMOBILEDEVICE
if (itdb_device_is_iphone_family (itdb->device)) {
int sync_status;
+ if (itdb->device->iphone_sync_context == NULL) {
+ g_warning ("Trying to unlock an already unlocked device");
+ return FALSE;
+ }
sync_status = itdb_iphone_stop_sync (itdb->device->iphone_sync_context);
itdb->device->iphone_sync_context = NULL;
if (sync_status != 0) {
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2