summaryrefslogtreecommitdiffstats
path: root/lasso/xml
diff options
context:
space:
mode:
authorDamien Laniel <dlaniel@entrouvert.com>2008-05-20 18:34:09 +0000
committerDamien Laniel <dlaniel@entrouvert.com>2008-05-20 18:34:09 +0000
commiteb2fbc8fc05e021ef718c1582f7de67e4246caf2 (patch)
tree13ed3fc7e02c4b3cbe771898a4d97ee2d884c291 /lasso/xml
parentc9a8f041ab03a83439f39e61ea39b46b162cf257 (diff)
downloadlasso-eb2fbc8fc05e021ef718c1582f7de67e4246caf2.tar.gz
lasso-eb2fbc8fc05e021ef718c1582f7de67e4246caf2.tar.xz
lasso-eb2fbc8fc05e021ef718c1582f7de67e4246caf2.zip
fixed some reference counting and memory management
Diffstat (limited to 'lasso/xml')
-rw-r--r--lasso/xml/id-wsf-2.0/disco_endpoint_context.c5
-rw-r--r--lasso/xml/id-wsf-2.0/disco_svc_metadata.c3
-rw-r--r--lasso/xml/id-wsf-2.0/sbf_framework.c15
-rw-r--r--lasso/xml/id-wsf-2.0/sbf_framework.h2
-rw-r--r--lasso/xml/soap_envelope.c17
5 files changed, 24 insertions, 18 deletions
diff --git a/lasso/xml/id-wsf-2.0/disco_endpoint_context.c b/lasso/xml/id-wsf-2.0/disco_endpoint_context.c
index e7aa73cd..f28a279f 100644
--- a/lasso/xml/id-wsf-2.0/disco_endpoint_context.c
+++ b/lasso/xml/id-wsf-2.0/disco_endpoint_context.c
@@ -132,14 +132,11 @@ LassoIdWsf2DiscoEndpointContext*
lasso_idwsf2_disco_endpoint_context_new_full(const gchar *address)
{
LassoIdWsf2DiscoEndpointContext *context;
- LassoIdWsf2SbfFramework *sbf_framework;
context = lasso_idwsf2_disco_endpoint_context_new();
context->Address = g_list_append(NULL, g_strdup(address));
- sbf_framework = lasso_idwsf2_sbf_framework_new();
- sbf_framework->version = g_strdup("2.0");
- context->Framework = g_list_append(NULL, sbf_framework);
+ context->Framework = g_list_append(NULL, lasso_idwsf2_sbf_framework_new_full("2.0"));
return context;
}
diff --git a/lasso/xml/id-wsf-2.0/disco_svc_metadata.c b/lasso/xml/id-wsf-2.0/disco_svc_metadata.c
index c09b3d5d..5116d3ed 100644
--- a/lasso/xml/id-wsf-2.0/disco_svc_metadata.c
+++ b/lasso/xml/id-wsf-2.0/disco_svc_metadata.c
@@ -136,7 +136,7 @@ lasso_idwsf2_disco_svc_metadata_new_full(const gchar *service_type, const gchar
LassoIdWsf2DiscoSvcMetadata *metadata;
LassoIdWsf2DiscoEndpointContext *endpoint_context;
- metadata = lasso_idwsf2_disco_svc_metadata_new();
+ metadata = g_object_new(LASSO_TYPE_IDWSF2_DISCO_SVC_METADATA, NULL);
metadata->Abstract = g_strdup(abstract);
metadata->ProviderID = g_strdup(provider_id);
@@ -144,6 +144,7 @@ lasso_idwsf2_disco_svc_metadata_new_full(const gchar *service_type, const gchar
endpoint_context = lasso_idwsf2_disco_endpoint_context_new_full(soap_endpoint);
metadata->ServiceContext = g_list_append(NULL,
lasso_idwsf2_disco_service_context_new_full(service_type, endpoint_context));
+ g_object_unref(endpoint_context);
return metadata;
}
diff --git a/lasso/xml/id-wsf-2.0/sbf_framework.c b/lasso/xml/id-wsf-2.0/sbf_framework.c
index ac193c1a..6490b35d 100644
--- a/lasso/xml/id-wsf-2.0/sbf_framework.c
+++ b/lasso/xml/id-wsf-2.0/sbf_framework.c
@@ -66,8 +66,7 @@ static void
instance_init(LassoIdWsf2SbfFramework *node)
{
node->version = NULL;
- node->attributes = g_hash_table_new_full(
- g_str_hash, g_str_equal, g_free, g_free);
+ node->attributes = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
}
static void
@@ -118,3 +117,15 @@ lasso_idwsf2_sbf_framework_new()
{
return g_object_new(LASSO_TYPE_IDWSF2_SBF_FRAMEWORK, NULL);
}
+
+LassoIdWsf2SbfFramework*
+lasso_idwsf2_sbf_framework_new_full(const char *version)
+{
+ LassoIdWsf2SbfFramework* framework;
+
+ framework = g_object_new(LASSO_TYPE_IDWSF2_SBF_FRAMEWORK, NULL);
+
+ framework->version = g_strdup(version);
+
+ return framework;
+}
diff --git a/lasso/xml/id-wsf-2.0/sbf_framework.h b/lasso/xml/id-wsf-2.0/sbf_framework.h
index 746471a6..c246e97b 100644
--- a/lasso/xml/id-wsf-2.0/sbf_framework.h
+++ b/lasso/xml/id-wsf-2.0/sbf_framework.h
@@ -73,7 +73,7 @@ struct _LassoIdWsf2SbfFrameworkClass {
LASSO_EXPORT GType lasso_idwsf2_sbf_framework_get_type(void);
LASSO_EXPORT LassoIdWsf2SbfFramework* lasso_idwsf2_sbf_framework_new(void);
-
+LASSO_EXPORT LassoIdWsf2SbfFramework* lasso_idwsf2_sbf_framework_new_full(const char *version);
#ifdef __cplusplus
}
diff --git a/lasso/xml/soap_envelope.c b/lasso/xml/soap_envelope.c
index ea06eac1..e855bac3 100644
--- a/lasso/xml/soap_envelope.c
+++ b/lasso/xml/soap_envelope.c
@@ -89,26 +89,23 @@ lasso_soap_envelope_get_type()
LassoSoapEnvelope*
lasso_soap_envelope_new(LassoSoapBody *body)
{
- LassoSoapEnvelope *node;
+ LassoSoapEnvelope *envelope;
- node = g_object_new(LASSO_TYPE_SOAP_ENVELOPE, NULL);
+ envelope = g_object_new(LASSO_TYPE_SOAP_ENVELOPE, NULL);
- node->Body = body;
+ envelope->Body = body;
- return node;
+ return envelope;
}
LassoSoapEnvelope*
lasso_soap_envelope_new_from_message(const gchar *message)
{
- LassoSoapEnvelope *node;
+ LassoSoapEnvelope *envelope;
g_return_val_if_fail(message != NULL, NULL);
- node = g_object_new(LASSO_TYPE_SOAP_ENVELOPE, NULL);
- lasso_node_init_from_message(LASSO_NODE(node), message);
+ envelope = LASSO_SOAP_ENVELOPE(lasso_node_new_from_dump(message));
- node = LASSO_SOAP_ENVELOPE(lasso_node_new_from_dump(message));
-
- return node;
+ return envelope;
}