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® 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