commit cb7474e586b3cd8c8b56d7bdda91062fe1e6a1b3
Author: Christophe Fergeau <cferg...@mandriva.com>
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&#174; 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
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to