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