[libgda] More thread-wrapped connection corrections
- From: Vivien Malerba <vivien src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] More thread-wrapped connection corrections
- Date: Sat, 19 Nov 2011 20:57:44 +0000 (UTC)
commit 182c707a37d71d187a8dac1def8298d191986115
Author: Vivien Malerba <malerba gnome-db org>
Date: Sat Nov 19 21:56:32 2011 +0100
More thread-wrapped connection corrections
libgda/thread-wrapper/gda-thread-provider.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
---
diff --git a/libgda/thread-wrapper/gda-thread-provider.c b/libgda/thread-wrapper/gda-thread-provider.c
index a9c3a43..bc0f12d 100644
--- a/libgda/thread-wrapper/gda-thread-provider.c
+++ b/libgda/thread-wrapper/gda-thread-provider.c
@@ -399,11 +399,16 @@ create_connection_data (GdaServerProvider *provider, GdaConnection *cnc, GdaQuar
}
else if (cnc_string) {
data = g_new0 (NewConnectionData, 1);
- if (params)
+ if (params) {
data->prov_name = gda_quark_list_find (params, "PROVIDER_NAME");
+ if (data->prov_name)
+ data->prov_name = g_strdup (data->prov_name);
+ }
else {
params = gda_quark_list_new_from_string (cnc_string);
data->prov_name = gda_quark_list_find (params, "PROVIDER_NAME");
+ if (data->prov_name)
+ data->prov_name = g_strdup (data->prov_name);
gda_quark_list_free (params);
params = NULL;
}
@@ -418,6 +423,7 @@ create_connection_data (GdaServerProvider *provider, GdaConnection *cnc, GdaQuar
wr = gda_thread_wrapper_new ();
if (!wr) {
gda_connection_add_event_string (cnc, "%s", _("Multi threading is not supported or enabled"));
+ g_free (data->prov_name);
g_free (data);
g_static_mutex_unlock (&mutex);
return NULL;
@@ -447,6 +453,7 @@ create_connection_data (GdaServerProvider *provider, GdaConnection *cnc, GdaQuar
if (error)
g_error_free (error);
g_object_unref (wr);
+ g_free (data->prov_name);
g_free (data);
if (wr_created)
g_static_mutex_unlock (&mutex);
@@ -460,9 +467,9 @@ create_connection_data (GdaServerProvider *provider, GdaConnection *cnc, GdaQuar
cdata->cnc_provider = g_object_ref (data->out_cnc_provider);
cdata->wrapper = wr;
cdata->handlers_ids = g_array_sized_new (FALSE, FALSE, sizeof (gulong), 2);
+ g_free (data->prov_name);
g_free (data);
_gda_thread_connection_set_data (cnc, cdata);
- gda_connection_internal_set_provider_data (cnc, cdata, NULL);
setup_signals (cnc, cdata);
if (wr_created) {
@@ -475,7 +482,7 @@ create_connection_data (GdaServerProvider *provider, GdaConnection *cnc, GdaQuar
g_static_mutex_unlock (&mutex);
}
- return cdata;
+ return cdata;
}
static gpointer
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]