On Thu, 2007-10-04 at 05:20 +0000, Iain Buchanan wrote:
> > Try the attached patch, hopefully it will prevent the segfault. If that
> > works ok we can start to figure out why the connection is a bit flaky.
> 
> heh... still crashes:

> I've attached the backtrace.
> 

That backtrace could be remarkably useful, try the new patch attached. 

> 
> It's coming up to the weekend - I could probably nut out some time on
> irc late one night if you want to line up our timezones.  Might be a bit
> more efficient than one message per day!  Up to you.
> 
> thanks for the help,

Unfortunately on highly unreliable dial up at weekends (women just dont
understand sometimes !).

No worries, hope this works.

Mark


diff -Nur synce-trayicon-0.9.0.svn20071002.orig/src/device.c synce-trayicon-0.9.0.svn20071002/src/device.c
--- synce-trayicon-0.9.0.svn20071002.orig/src/device.c	2007-08-23 09:22:00.000000000 +0100
+++ synce-trayicon-0.9.0.svn20071002/src/device.c	2007-10-04 07:11:28.000000000 +0100
@@ -740,9 +740,11 @@
 
   /* unref other objects */
 
-  rapi_connection_select(priv->rapi_conn);
-  CeRapiUninit();
-  rapi_connection_destroy(priv->rapi_conn);
+  if (priv->rapi_conn) {
+    rapi_connection_select(priv->rapi_conn);
+    CeRapiUninit();
+    rapi_connection_destroy(priv->rapi_conn);
+  }
 
   if (G_OBJECT_CLASS (wm_device_parent_class)->dispose)
     G_OBJECT_CLASS (wm_device_parent_class)->dispose (obj);
diff -Nur synce-trayicon-0.9.0.svn20071002.orig/src/odccm-client.c synce-trayicon-0.9.0.svn20071002/src/odccm-client.c
--- synce-trayicon-0.9.0.svn20071002.orig/src/odccm-client.c	2007-08-23 09:22:00.000000000 +0100
+++ synce-trayicon-0.9.0.svn20071002/src/odccm-client.c	2007-10-03 21:54:35.000000000 +0100
@@ -411,13 +411,6 @@
     goto error_exit;
   }
 
-  g_object_get(device, "name", &name, NULL);
-  proxy_store *p_store = g_malloc0(sizeof(proxy_store));
-  p_store->pdaname = g_strdup(name);
-  p_store->proxy = new_proxy;
-
-  g_ptr_array_add(priv->dev_proxies, p_store);
-
   dbus_g_proxy_add_signal (new_proxy, "PasswordFlagsChanged",
 			   G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
   dbus_g_proxy_connect_signal (new_proxy, "PasswordFlagsChanged",
@@ -432,6 +425,13 @@
     goto error_exit;
   }
 
+  g_object_get(device, "name", &name, NULL);
+  proxy_store *p_store = g_malloc0(sizeof(proxy_store));
+  p_store->pdaname = g_strdup(name);
+  p_store->proxy = new_proxy;
+
+  g_ptr_array_add(priv->dev_proxies, p_store);
+
   if (password_flags & ODCCM_DEVICE_PASSWORD_FLAG_PROVIDE) {
     g_hash_table_insert(priv->pending_devices, g_strdup(name), device);
     g_signal_emit (self, DCCM_CLIENT_GET_INTERFACE (self)->signals[PASSWORD_REQUIRED], 0, name);
@@ -439,8 +439,12 @@
   }
 
   /* get rapi connection */
-  if (!(odccm_device_get_rapi_connection(self, device)))
-     goto error_exit;
+  if (!(odccm_device_get_rapi_connection(self, device))) {
+    g_ptr_array_remove(priv->dev_proxies, p_store);
+    g_free(p_store->pdaname);
+    g_free(p_store);
+    goto error_exit;
+  }
 
   g_signal_emit(self, DCCM_CLIENT_GET_INTERFACE (self)->signals[DEVICE_CONNECTED], 0, name, (gpointer)device);
   g_free(name);
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
SynCE-Devel mailing list
SynCE-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synce-devel

Reply via email to