You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2005/12/12 04:14:32 UTC
svn commit: r356124 [3/3] - in /webservices/axis2/trunk/c/modules:
core/description/src/ core/phaseresolver/src/ wsdl/src/
Modified: webservices/axis2/trunk/c/modules/wsdl/src/wsdl_feature.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/wsdl_feature.c?rev=356124&r1=356123&r2=356124&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/wsdl_feature.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/src/wsdl_feature.c Sun Dec 11 19:13:55 2005
@@ -60,30 +60,40 @@
axis2_wsdl_feature_t * AXIS2_CALL
axis2_wsdl_feature_create (axis2_env_t **env)
{
+ axis2_wsdl_feature_impl_t *wsdl_feature_impl = NULL;
+
AXIS2_ENV_CHECK(env, NULL);
- axis2_wsdl_feature_impl_t *wsdl_feature_impl =
- (axis2_wsdl_feature_impl_t *) AXIS2_MALLOC((*env)->allocator,
+ wsdl_feature_impl = (axis2_wsdl_feature_impl_t *) AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_wsdl_feature_impl_t));
if(NULL == wsdl_feature_impl)
+ {
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
+ }
+
+ wsdl_feature_impl->name = NULL;
+ wsdl_feature_impl->required = AXIS2_FALSE;
+ wsdl_feature_impl->wsdl_feature.ops = NULL;
+ wsdl_feature_impl->wsdl_feature.wsdl_component = NULL;
wsdl_feature_impl->wsdl_feature.wsdl_component = axis2_wsdl_component_create(env);
if(NULL == wsdl_feature_impl->wsdl_feature.wsdl_component)
{
- AXIS2_FREE((*env)->allocator, wsdl_feature_impl);
+ axis2_wsdl_feature_free(&(wsdl_feature_impl->wsdl_feature), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
wsdl_feature_impl->wsdl_feature.ops =
AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_wsdl_feature_ops_t));
if(NULL == wsdl_feature_impl->wsdl_feature.ops)
{
- AXIS2_WSDL_FEATURE_FREE(wsdl_feature_impl->wsdl_feature.wsdl_component, env);
- AXIS2_FREE((*env)->allocator, wsdl_feature_impl);
+ axis2_wsdl_feature_free(&(wsdl_feature_impl->wsdl_feature), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
wsdl_feature_impl->wsdl_feature.ops->free = axis2_wsdl_feature_free;
@@ -96,9 +106,6 @@
wsdl_feature_impl->wsdl_feature.ops->set_required =
axis2_wsdl_feature_set_required;
- wsdl_feature_impl->name = NULL;
- wsdl_feature_impl->required = AXIS2_FALSE;
-
return &(wsdl_feature_impl->wsdl_feature);
}
@@ -108,21 +115,29 @@
axis2_wsdl_feature_free (axis2_wsdl_feature_t *wsdl_feature,
axis2_env_t **env)
{
+ axis2_wsdl_feature_impl_t *feature_impl = NULL;
+
AXIS2_FUNC_PARAM_CHECK(wsdl_feature, env, AXIS2_FAILURE);
+
+ feature_impl = AXIS2_INTF_TO_IMPL(wsdl_feature);
+
if(NULL != wsdl_feature->ops)
AXIS2_FREE((*env)->allocator, wsdl_feature->ops);
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_feature)->name)
+ if(NULL != feature_impl->name)
{
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_feature)->name);
+ AXIS2_FREE((*env)->allocator, feature_impl->name);
+ feature_impl->name = NULL;
}
if(NULL != wsdl_feature->wsdl_component)
{
AXIS2_WSDL_COMPONENT_FREE(wsdl_feature->wsdl_component, env);
+ wsdl_feature->wsdl_component = NULL;
}
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_feature));
+ AXIS2_FREE((*env)->allocator, feature_impl);
+ feature_impl = NULL;
return AXIS2_SUCCESS;
}
@@ -140,9 +155,19 @@
axis2_env_t **env,
axis2_char_t *name)
{
+ axis2_wsdl_feature_impl_t *feature_impl = NULL;
+
AXIS2_FUNC_PARAM_CHECK(wsdl_feature, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, name, AXIS2_FAILURE);
- AXIS2_INTF_TO_IMPL(wsdl_feature)->name = name;
+
+ feature_impl = AXIS2_INTF_TO_IMPL(wsdl_feature);
+
+ if(feature_impl->name)
+ {
+ AXIS2_FREE((*env)->allocator, feature_impl->name);
+ feature_impl->name = NULL;
+ }
+ feature_impl->name = name;
return AXIS2_SUCCESS;
}
Modified: webservices/axis2/trunk/c/modules/wsdl/src/wsdl_interface.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/wsdl_interface.c?rev=356124&r1=356123&r2=356124&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/wsdl_interface.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/src/wsdl_interface.c Sun Dec 11 19:13:55 2005
@@ -111,7 +111,8 @@
axis2_status_t AXIS2_CALL
axis2_wsdl_interface_set_operation(axis2_wsdl_interface_t *wsdl_interface,
axis2_env_t **env,
- void *operation);
+ void *operation,
+ axis2_operation_type_t opt_type);
axis2_status_t AXIS2_CALL
axis2_wsdl_interface_set_super_interfaces(axis2_wsdl_interface_t *wsdl_interface,
@@ -258,44 +259,70 @@
axis2_wsdl_interface_t *wsdl_interface,
axis2_env_t **env)
{
+ axis2_wsdl_interface_impl_t *wsdl_interface_impl = NULL;
+
AXIS2_FUNC_PARAM_CHECK(wsdl_interface, env, AXIS2_FAILURE);
+
+ wsdl_interface_impl = AXIS2_INTF_TO_IMPL(wsdl_interface);
+
if(NULL != wsdl_interface->ops)
AXIS2_FREE((*env)->allocator, wsdl_interface->ops);
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_interface)->super_interfaces)
+ if(NULL != wsdl_interface_impl->super_interfaces)
{
- axis2_hash_free(AXIS2_INTF_TO_IMPL(wsdl_interface)->
- super_interfaces, env);
+ axis2_hash_free(wsdl_interface_impl->super_interfaces, env);
}
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_interface)->operations)
+ if(NULL != wsdl_interface_impl->operations)
{
- axis2_hash_free(AXIS2_INTF_TO_IMPL(wsdl_interface)->
- operations, env);
+ axis2_hash_index_t *hi = NULL;
+ void *val = NULL;
+ for (hi = axis2_hash_first (wsdl_interface_impl->operations, env); hi;
+ hi = axis2_hash_next ( env, hi))
+ {
+ struct axis2_wsdl_operation *wsdl_optr = NULL;
+ struct axis2_operation *optr = NULL;
+ axis2_hash_this (hi, NULL, NULL, &val);
+ if(AXIS2_OPERATION == wsdl_interface->optr_type)
+ {
+ optr = (struct axis2_operation *) val;
+ AXIS2_OPERATION_FREE (optr, env);
+ }
+ if(AXIS2_WSDL_OPERATION == wsdl_interface->optr_type)
+ {
+ wsdl_optr = (struct axis2_wsdl_operation *) val;
+ AXIS2_WSDL_OPERATION_FREE(wsdl_optr, env);
+ }
+
+ val = NULL;
+ optr = NULL;
+ wsdl_optr = NULL;
+
+ }
+ axis2_hash_free(wsdl_interface_impl->operations, env);
+ wsdl_interface_impl->operations = NULL;
}
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_interface)->faults)
+ if(NULL != wsdl_interface_impl->faults)
{
- AXIS2_LINKED_LIST_FREE(AXIS2_INTF_TO_IMPL(wsdl_interface)->
- faults, env);
+ AXIS2_LINKED_LIST_FREE(wsdl_interface_impl->faults, env);
}
if(NULL != AXIS2_INTF_TO_IMPL(wsdl_interface)->qname)
{
- AXIS2_QNAME_FREE(AXIS2_INTF_TO_IMPL(wsdl_interface)->qname, env);
+ AXIS2_QNAME_FREE(wsdl_interface_impl->qname, env);
}
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_interface)->style_default)
+ if(NULL != wsdl_interface_impl->style_default)
{
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_interface)->
- style_default);
+ AXIS2_FREE((*env)->allocator, wsdl_interface_impl->style_default);
}
if(NULL != wsdl_interface->extensible_component)
AXIS2_WSDL_EXTENSIBLE_COMPONENT_FREE(wsdl_interface->
extensible_component, env);
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_interface));
+ AXIS2_FREE((*env)->allocator, wsdl_interface_impl);
return AXIS2_SUCCESS;
}
@@ -390,21 +417,31 @@
axis2_status_t AXIS2_CALL
axis2_wsdl_interface_set_operation(axis2_wsdl_interface_t *wsdl_interface,
axis2_env_t **env,
- void *operation)
+ void *operation,
+ axis2_operation_type_t optr_type)
{
struct axis2_operation *operation_l = NULL;
+ axis2_qname_t *wsdl_opt_name = NULL;
+ axis2_char_t *op_name = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(wsdl_interface, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, operation, AXIS2_FAILURE);
+
operation_l = (struct axis2_operation *) operation;
- if (NULL == AXIS2_WSDL_OPERATION_GET_NAME(operation_l->wsdl_operation, env))
+ wsdl_opt_name = AXIS2_WSDL_OPERATION_GET_NAME(operation_l->wsdl_operation, env);
+ if (!wsdl_opt_name)
{
/* The Operation name cannot be null (required) */
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_STATE_WSDL_OPERATION,
AXIS2_FAILURE);
return AXIS2_FAILURE;
}
- axis2_char_t *op_name = AXIS2_QNAME_GET_LOCALPART(AXIS2_WSDL_OPERATION_GET_NAME(
- operation_l->wsdl_operation, env), env);
+
+ op_name = AXIS2_QNAME_GET_LOCALPART(wsdl_opt_name, env);
+
axis2_hash_set(AXIS2_INTF_TO_IMPL(wsdl_interface)->operations, op_name,
AXIS2_HASH_KEY_STRING, operation);
+ wsdl_interface->optr_type = optr_type;
return AXIS2_SUCCESS;
}
Modified: webservices/axis2/trunk/c/modules/wsdl/src/wsdl_operation.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/wsdl_operation.c?rev=356124&r1=356123&r2=356124&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/wsdl_operation.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/src/wsdl_operation.c Sun Dec 11 19:13:55 2005
@@ -79,7 +79,7 @@
axis2_wsdl_operation_set_msg_exchange_pattern (
axis2_wsdl_operation_t *wsdl_operation,
axis2_env_t **env,
- const axis2_char_t *msg_exchange_pattern);
+ axis2_char_t *msg_exchange_pattern);
axis2_char_t * AXIS2_CALL
axis2_wsdl_operation_get_msg_exchange_pattern
@@ -169,37 +169,48 @@
axis2_wsdl_operation_t * AXIS2_CALL
axis2_wsdl_operation_create (axis2_env_t **env)
{
- axis2_wsdl_operation_impl_t *wsdl_operation_impl =
- (axis2_wsdl_operation_impl_t *) AXIS2_MALLOC ((*env)->allocator,
- sizeof(axis2_wsdl_operation_impl_t));
+ axis2_wsdl_operation_impl_t *wsdl_operation_impl = NULL;
+
+ wsdl_operation_impl = (axis2_wsdl_operation_impl_t *) AXIS2_MALLOC ((*env)->
+ allocator, sizeof(axis2_wsdl_operation_impl_t));
if(!wsdl_operation_impl)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
}
+ wsdl_operation_impl->infaults = NULL;
+ wsdl_operation_impl->outfaults = NULL;
+ wsdl_operation_impl->wsdl_operation.extensible_component = NULL;
+ wsdl_operation_impl->msg_exchange_pattern = NULL;
+ wsdl_operation_impl->style = STYLE_DOC;
+ wsdl_operation_impl->name = NULL;
+ wsdl_operation_impl->input_msg = NULL;
+ wsdl_operation_impl->output_msg = NULL;
+ wsdl_operation_impl->safety = AXIS2_FALSE;
+
wsdl_operation_impl->infaults = axis2_linked_list_create(env);
if(NULL == wsdl_operation_impl->infaults)
{
- AXIS2_FREE((*env)->allocator, wsdl_operation_impl);
+ axis2_wsdl_operation_free(&(wsdl_operation_impl->wsdl_operation), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
wsdl_operation_impl->outfaults = axis2_linked_list_create(env);
if(NULL == wsdl_operation_impl->outfaults)
{
- AXIS2_LINKED_LIST_FREE(wsdl_operation_impl->infaults, env);
- AXIS2_FREE((*env)->allocator, wsdl_operation_impl);
+ axis2_wsdl_operation_free(&(wsdl_operation_impl->wsdl_operation), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
wsdl_operation_impl->wsdl_operation.extensible_component = axis2_wsdl_extensible_component_create(env);
if(NULL == wsdl_operation_impl->wsdl_operation.extensible_component)
{
- AXIS2_LINKED_LIST_FREE(wsdl_operation_impl->infaults, env);
- AXIS2_LINKED_LIST_FREE(wsdl_operation_impl->outfaults, env);
- AXIS2_FREE((*env)->allocator, wsdl_operation_impl);
+ axis2_wsdl_operation_free(&(wsdl_operation_impl->wsdl_operation), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
wsdl_operation_impl->wsdl_operation.ops = (axis2_wsdl_operation_ops_t *)
@@ -207,11 +218,9 @@
if(NULL == wsdl_operation_impl->wsdl_operation.ops)
{
- AXIS2_WSDL_COMPONENT_FREE(wsdl_operation_impl->wsdl_operation.extensible_component, env);
- AXIS2_LINKED_LIST_FREE(wsdl_operation_impl->infaults, env);
- AXIS2_LINKED_LIST_FREE(wsdl_operation_impl->outfaults, env);
- AXIS2_FREE((*env)->allocator, wsdl_operation_impl);
+ axis2_wsdl_operation_free(&(wsdl_operation_impl->wsdl_operation), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
wsdl_operation_impl->wsdl_operation.ops->free = axis2_wsdl_operation_free;
@@ -272,13 +281,6 @@
wsdl_operation_impl->wsdl_operation.ops->add_outfault =
axis2_wsdl_operation_add_outfault;
-
- wsdl_operation_impl->msg_exchange_pattern = NULL;
- wsdl_operation_impl->style = STYLE_DOC;
- wsdl_operation_impl->name = NULL;
- wsdl_operation_impl->input_msg = NULL;
- wsdl_operation_impl->output_msg = NULL;
- wsdl_operation_impl->safety = AXIS2_FALSE;
return &(wsdl_operation_impl->wsdl_operation);
}
@@ -289,44 +291,82 @@
axis2_wsdl_operation_free (axis2_wsdl_operation_t *wsdl_operation,
axis2_env_t **env)
{
+ axis2_wsdl_operation_impl_t *wsdl_operation_impl = NULL;
+
AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
+ wsdl_operation_impl = AXIS2_INTF_TO_IMPL(wsdl_operation);
+
if(NULL != wsdl_operation->ops)
+ {
AXIS2_FREE((*env)->allocator, wsdl_operation->ops);
+ wsdl_operation->ops = NULL;
+ }
if(NULL != wsdl_operation->extensible_component)
- AXIS2_WSDL_COMPONENT_FREE(wsdl_operation->extensible_component, env);
-
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_operation)->input_msg)
- AXIS2_WSDL_MSG_REF_FREE(AXIS2_INTF_TO_IMPL(wsdl_operation)->
- input_msg, env);
-
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_operation)->output_msg)
- AXIS2_WSDL_MSG_REF_FREE(AXIS2_INTF_TO_IMPL(wsdl_operation)->
- output_msg, env);
-
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_operation)->infaults)
- AXIS2_LINKED_LIST_FREE(AXIS2_INTF_TO_IMPL(wsdl_operation)->
- infaults, env);
-
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_operation)->outfaults)
- AXIS2_LINKED_LIST_FREE(AXIS2_INTF_TO_IMPL(wsdl_operation)->
- outfaults, env);
-
+ {
+ AXIS2_WSDL_EXTENSIBLE_COMPONENT_FREE(wsdl_operation->extensible_component, env);
+ wsdl_operation->extensible_component = NULL;
+ }
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_operation)->msg_exchange_pattern)
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_operation)->
- msg_exchange_pattern);
+ if(NULL != wsdl_operation_impl->infaults)
+ {
+ void *val = NULL;
+ int i = 0;
+ for (i = 0; i < AXIS2_LINKED_LIST_SIZE(wsdl_operation_impl->infaults, env); i++)
+ {
+ struct axis2_wsdl_fault_ref *fault = NULL;
+ fault = AXIS2_LINKED_LIST_GET(wsdl_operation_impl->infaults, env, i);
+
+ fault = (struct axis2_wsdl_fault_ref *) val;
+ if (fault)
+ AXIS2_PHASE_FREE (fault, env);
+
+ val = NULL;
+ fault = NULL;
+
+ }
+ AXIS2_LINKED_LIST_FREE(wsdl_operation_impl->infaults, env);
+ wsdl_operation_impl->infaults = NULL;
+ }
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_operation)->name)
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_operation)->
- name);
+ if(NULL != wsdl_operation_impl->outfaults)
+ {
+ void *val = NULL;
+ int i = 0;
+ for (i = 0; i < AXIS2_LINKED_LIST_SIZE(wsdl_operation_impl->outfaults, env); i++)
+ {
+ struct axis2_wsdl_fault_ref *fault = NULL;
+ fault = AXIS2_LINKED_LIST_GET(wsdl_operation_impl->outfaults, env, i);
+
+ fault = (struct axis2_wsdl_fault_ref *) val;
+ if (fault)
+ AXIS2_PHASE_FREE (fault, env);
+
+ val = NULL;
+ fault = NULL;
+
+ }
+ AXIS2_LINKED_LIST_FREE(wsdl_operation_impl->outfaults, env);
+ wsdl_operation_impl->outfaults = NULL;
+ }
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_operation)->style)
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_operation)->
- style);
+ if(NULL != wsdl_operation_impl->name)
+ {
+ AXIS2_FREE((*env)->allocator, wsdl_operation_impl->name);
+ wsdl_operation_impl->name = NULL;
+ }
- AXIS2_FREE((*env)->allocator, wsdl_operation);
+ if(NULL != wsdl_operation_impl->style)
+ {
+ AXIS2_FREE((*env)->allocator, wsdl_operation_impl->style);
+ wsdl_operation_impl->style = NULL;
+ }
+ if(wsdl_operation_impl)
+ {
+ AXIS2_FREE((*env)->allocator, wsdl_operation_impl);
+ wsdl_operation_impl = NULL;
+ }
return AXIS2_SUCCESS;
}
@@ -334,7 +374,7 @@
axis2_wsdl_operation_set_msg_exchange_pattern (
axis2_wsdl_operation_t *wsdl_operation,
axis2_env_t **env,
- const axis2_char_t *msg_exchange_pattern)
+ axis2_char_t *msg_exchange_pattern)
{
AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, msg_exchange_pattern, AXIS2_FAILURE);
@@ -363,10 +403,23 @@
axis2_env_t **env,
axis2_qname_t *name)
{
+ axis2_wsdl_operation_impl_t *wsdl_operation_impl = NULL;
+
AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, name, AXIS2_FAILURE);
-
- AXIS2_INTF_TO_IMPL(wsdl_operation)->name = name;
+
+ wsdl_operation_impl = AXIS2_INTF_TO_IMPL(wsdl_operation);
+
+ if(wsdl_operation_impl->name)
+ {
+ AXIS2_FREE((*env)->allocator, wsdl_operation_impl->name);
+ wsdl_operation_impl->name = NULL;
+ }
+ wsdl_operation_impl->name = AXIS2_STRDUP(name, env);
+ if(!wsdl_operation_impl->name)
+ {
+ return AXIS2_FAILURE;
+ }
return AXIS2_SUCCESS;
}
@@ -386,10 +439,19 @@
axis2_env_t **env,
axis2_char_t *style)
{
+ axis2_wsdl_operation_impl_t *wsdl_operation_impl = NULL;
+
AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, style, AXIS2_FAILURE);
- AXIS2_INTF_TO_IMPL(wsdl_operation)->style = style;
+ wsdl_operation_impl = AXIS2_INTF_TO_IMPL(wsdl_operation);
+
+ if(wsdl_operation_impl->style)
+ {
+ AXIS2_FREE((*env)->allocator, wsdl_operation_impl->style);
+ wsdl_operation_impl->style = NULL;
+ }
+ wsdl_operation_impl->style = style;
return AXIS2_SUCCESS;
}
@@ -415,6 +477,31 @@
axis2_env_t **env,
axis2_linked_list_t *infaults)
{
+ axis2_wsdl_operation_impl_t *wsdl_operation_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, infaults, AXIS2_FAILURE);
+
+ wsdl_operation_impl = AXIS2_INTF_TO_IMPL(wsdl_operation);
+
+ if(wsdl_operation_impl->infaults)
+ {
+ void *val = NULL;
+ int i = 0;
+ for (i = 0; i < AXIS2_LINKED_LIST_SIZE(wsdl_operation_impl->infaults, env); i++)
+ {
+ struct axis2_wsdl_fault_ref *fault = NULL;
+ fault = AXIS2_LINKED_LIST_GET(wsdl_operation_impl->infaults, env, i);
+
+ fault = (struct axis2_wsdl_fault_ref *) val;
+ if (fault)
+ AXIS2_PHASE_FREE (fault, env);
+
+ val = NULL;
+ fault = NULL;
+
+ }
+ }
AXIS2_INTF_TO_IMPL(wsdl_operation)->infaults = infaults;
return AXIS2_SUCCESS;
}
@@ -431,7 +518,20 @@
axis2_env_t **env,
axis2_wsdl_msg_ref_t *input_msg)
{
- AXIS2_INTF_TO_IMPL(wsdl_operation)->input_msg = input_msg;
+ axis2_wsdl_operation_impl_t *wsdl_operation_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, env, AXIS2_FAILURE);
+
+ wsdl_operation_impl = AXIS2_INTF_TO_IMPL(wsdl_operation);
+
+ if(wsdl_operation_impl->input_msg)
+ {
+ AXIS2_WSDL_MSG_REF_FREE(wsdl_operation_impl->input_msg, env);
+ wsdl_operation_impl->input_msg = NULL;
+ }
+ wsdl_operation_impl->input_msg = input_msg;
+
return AXIS2_SUCCESS;
}
@@ -439,6 +539,8 @@
axis2_wsdl_operation_get_outfaults(axis2_wsdl_operation_t *wsdl_operation,
axis2_env_t **env)
{
+ AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, NULL);
+
return AXIS2_INTF_TO_IMPL(wsdl_operation)->outfaults;
}
@@ -447,6 +549,31 @@
axis2_env_t **env,
axis2_linked_list_t *outfaults)
{
+ axis2_wsdl_operation_impl_t *wsdl_operation_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, outfaults, AXIS2_FAILURE);
+
+ wsdl_operation_impl = AXIS2_INTF_TO_IMPL(wsdl_operation);
+
+ if(wsdl_operation_impl->infaults)
+ {
+ void *val = NULL;
+ int i = 0;
+ for (i = 0; i < AXIS2_LINKED_LIST_SIZE(wsdl_operation_impl->outfaults, env); i++)
+ {
+ struct axis2_wsdl_fault_ref *fault = NULL;
+ fault = AXIS2_LINKED_LIST_GET(wsdl_operation_impl->outfaults, env, i);
+
+ fault = (struct axis2_wsdl_fault_ref *) val;
+ if (fault)
+ AXIS2_PHASE_FREE (fault, env);
+
+ val = NULL;
+ fault = NULL;
+
+ }
+ }
AXIS2_INTF_TO_IMPL(wsdl_operation)->outfaults = outfaults;
return AXIS2_SUCCESS;
}
@@ -463,7 +590,19 @@
axis2_env_t **env,
axis2_wsdl_msg_ref_t *output_msg)
{
- AXIS2_INTF_TO_IMPL(wsdl_operation)->output_msg = output_msg;
+ axis2_wsdl_operation_impl_t *wsdl_operation_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, output_msg, AXIS2_FAILURE);
+
+ wsdl_operation_impl = AXIS2_INTF_TO_IMPL(wsdl_operation);
+
+ if(wsdl_operation_impl->output_msg)
+ {
+ AXIS2_WSDL_MSG_REF_FREE(wsdl_operation_impl->output_msg, env);
+ wsdl_operation_impl->output_msg = NULL;
+ }
+ wsdl_operation_impl->output_msg = output_msg;
return AXIS2_SUCCESS;
}
@@ -487,11 +626,9 @@
axis2_wsdl_operation_get_target_namespace(axis2_wsdl_operation_t *wsdl_operation,
axis2_env_t **env)
{
- if (NULL != AXIS2_INTF_TO_IMPL(wsdl_operation)->name)
- {
- return AXIS2_QNAME_GET_URI(AXIS2_INTF_TO_IMPL(wsdl_operation)->name, env);
- }
- return NULL;
+
+ return AXIS2_QNAME_GET_URI(AXIS2_INTF_TO_IMPL(wsdl_operation)->name, env);
+
}
axis2_status_t AXIS2_CALL
@@ -499,12 +636,19 @@
axis2_env_t **env,
axis2_wsdl_fault_ref_t *infault)
{
+ AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, infault, AXIS2_FAILURE);
+
return AXIS2_LINKED_LIST_ADD(AXIS2_INTF_TO_IMPL(wsdl_operation)->infaults, env, infault);
}
axis2_status_t AXIS2_CALL
axis2_wsdl_operation_add_outfault(axis2_wsdl_operation_t *wsdl_operation,
axis2_env_t **env,
- axis2_wsdl_fault_ref_t *outfault) {
+ axis2_wsdl_fault_ref_t *outfault)
+{
+ AXIS2_FUNC_PARAM_CHECK(wsdl_operation, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, outfault, AXIS2_FAILURE);
+
return AXIS2_LINKED_LIST_ADD(AXIS2_INTF_TO_IMPL(wsdl_operation)->outfaults, env, outfault);
}
Modified: webservices/axis2/trunk/c/modules/wsdl/src/wsdl_property.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/wsdl_property.c?rev=356124&r1=356123&r2=356124&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/wsdl_property.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/src/wsdl_property.c Sun Dec 11 19:13:55 2005
@@ -70,30 +70,39 @@
axis2_wsdl_property_t * AXIS2_CALL
axis2_wsdl_property_create (axis2_env_t **env)
{
+ axis2_wsdl_property_impl_t *wsdl_property_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- axis2_wsdl_property_impl_t *wsdl_property_impl =
- (axis2_wsdl_property_impl_t *) AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_wsdl_property_impl_t));
+ wsdl_property_impl = (axis2_wsdl_property_impl_t *) AXIS2_MALLOC((*env)->
+ allocator, sizeof(axis2_wsdl_property_impl_t));
if(NULL == wsdl_property_impl)
+ {
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
+ }
- wsdl_property_impl->wsdl_property.wsdl_component = axis2_wsdl_component_create(env);
+ wsdl_property_impl->name = NULL;
+ wsdl_property_impl->constraint = NULL;
+ wsdl_property_impl->value = NULL;
+ wsdl_property_impl->wsdl_property.wsdl_component = NULL;
+ wsdl_property_impl->wsdl_property.wsdl_component = axis2_wsdl_component_create(env);
if(NULL == wsdl_property_impl->wsdl_property.wsdl_component)
{
- AXIS2_FREE((*env)->allocator, wsdl_property_impl);
+ axis2_wsdl_property_free(&(wsdl_property_impl->wsdl_property), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
- wsdl_property_impl->wsdl_property.ops =
- AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_wsdl_property_ops_t));
+ wsdl_property_impl->wsdl_property.ops = AXIS2_MALLOC ((*env)->allocator,
+ sizeof(axis2_wsdl_property_ops_t));
if(NULL == wsdl_property_impl->wsdl_property.ops)
{
- AXIS2_FREE((*env)->allocator, wsdl_property_impl);
+ axis2_wsdl_property_free(&(wsdl_property_impl->wsdl_property), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
wsdl_property_impl->wsdl_property.ops->free = axis2_wsdl_property_free;
@@ -110,10 +119,6 @@
wsdl_property_impl->wsdl_property.ops->set_value =
axis2_wsdl_property_set_value;
- wsdl_property_impl->name = NULL;
- wsdl_property_impl->constraint = NULL;
- wsdl_property_impl->value = NULL;
-
return &(wsdl_property_impl->wsdl_property);
}
@@ -123,29 +128,31 @@
axis2_wsdl_property_free (axis2_wsdl_property_t *wsdl_property,
axis2_env_t **env)
{
+ axis2_wsdl_property_impl_t *property_impl = NULL;
+
AXIS2_FUNC_PARAM_CHECK(wsdl_property, env, AXIS2_FAILURE);
if(NULL != wsdl_property->ops)
AXIS2_FREE((*env)->allocator, wsdl_property->ops);
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_property)->name)
- {
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_property)->name);
- }
+ property_impl = AXIS2_INTF_TO_IMPL(wsdl_property);
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_property)->constraint)
+ if(NULL != property_impl->name)
{
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_property)->constraint);
+ AXIS2_FREE((*env)->allocator, property_impl->name);
+ property_impl->name = NULL;
}
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_property)->value)
- {
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_property)->value);
- }
+ property_impl->constraint = NULL;
+
+ property_impl->value = NULL;
if(NULL != wsdl_property->wsdl_component)
+ {
AXIS2_WSDL_COMPONENT_FREE(wsdl_property->wsdl_component, env);
+ wsdl_property->wsdl_component = NULL;
+ }
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_property));
+ AXIS2_FREE((*env)->allocator, property_impl);
return AXIS2_SUCCESS;
}
@@ -165,6 +172,7 @@
{
AXIS2_FUNC_PARAM_CHECK(wsdl_property, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, constraint, AXIS2_FAILURE);
+
AXIS2_INTF_TO_IMPL(wsdl_property)->constraint = constraint;
return AXIS2_SUCCESS;
}
@@ -182,9 +190,19 @@
axis2_env_t **env,
axis2_char_t *name)
{
+ axis2_wsdl_property_impl_t *property_impl = NULL;
+
AXIS2_FUNC_PARAM_CHECK(wsdl_property, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, name, AXIS2_FAILURE);
- AXIS2_INTF_TO_IMPL(wsdl_property)->name = name;
+
+ property_impl = AXIS2_INTF_TO_IMPL(wsdl_property);
+
+ if(property_impl->name)
+ {
+ AXIS2_FREE((*env)->allocator, property_impl->name);
+ property_impl->name = NULL;
+ }
+ property_impl->name = name;
return AXIS2_SUCCESS;
}
@@ -201,8 +219,14 @@
axis2_env_t **env,
void *value)
{
+ axis2_wsdl_property_impl_t *property_impl = NULL;
+
AXIS2_FUNC_PARAM_CHECK(wsdl_property, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, value, AXIS2_FAILURE);
- AXIS2_INTF_TO_IMPL(wsdl_property)->value = value;
+
+ property_impl = AXIS2_INTF_TO_IMPL(wsdl_property);
+
+ property_impl->value = value;
+
return AXIS2_SUCCESS;
}
Modified: webservices/axis2/trunk/c/modules/wsdl/src/wsdl_soap_operation.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/wsdl_soap_operation.c?rev=356124&r1=356123&r2=356124&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/wsdl_soap_operation.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/src/wsdl_soap_operation.c Sun Dec 11 19:13:55 2005
@@ -64,15 +64,28 @@
axis2_wsdl_soap_operation_t * AXIS2_CALL
axis2_wsdl_soap_operation_create (axis2_env_t **env)
{
+ axis2_wsdl_soap_operation_impl_t *soap_operation_impl = NULL;
+
AXIS2_ENV_CHECK(env, NULL);
- axis2_wsdl_soap_operation_impl_t *soap_operation_impl =
- (axis2_wsdl_soap_operation_impl_t *) AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_wsdl_soap_operation_impl_t));
-
+ soap_operation_impl = (axis2_wsdl_soap_operation_impl_t *)
+ AXIS2_MALLOC((*env)->allocator, sizeof(axis2_wsdl_soap_operation_impl_t));
if(NULL == soap_operation_impl)
+ {
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
+ }
+
+ soap_operation_impl->style = NULL;
+ soap_operation_impl->soap_action = NULL;
+ soap_operation_impl->soap_operation.ops = NULL;
+ axis2_qname_t *type_l = NULL;
+
+ type_l = axis2_qname_create(env, "operation", SOAP_11_OPERATION, NULL);
+
+ AXIS2_WSDL_EXTENSIBLE_ELEMENT_SET_TYPE(soap_operation_impl->soap_operation.
+ extensible_element, env, type_l);
soap_operation_impl->soap_operation.ops =
AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_wsdl_soap_operation_ops_t));
@@ -81,6 +94,7 @@
axis2_wsdl_soap_operation_free(&(soap_operation_impl->
soap_operation), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
soap_operation_impl->soap_operation.ops->free =
@@ -94,15 +108,6 @@
axis2_wsdl_soap_operation_get_soap_action;
soap_operation_impl->soap_operation.ops->set_soap_action =
axis2_wsdl_soap_operation_set_soap_action;
-
- soap_operation_impl->style = NULL;
- soap_operation_impl->soap_action = NULL;
-
- axis2_qname_t *type_l = axis2_qname_create(env, "operation",
- SOAP_11_OPERATION, NULL);
-
- AXIS2_WSDL_EXTENSIBLE_ELEMENT_SET_TYPE(soap_operation_impl->soap_operation.
- extensible_element, env, type_l);
return &(soap_operation_impl->soap_operation);
}
@@ -110,14 +115,21 @@
axis2_wsdl_soap_operation_t * AXIS2_CALL
axis2_wsdl_soap_operation_create_with_type (axis2_env_t **env, axis2_qname_t *type)
{
+ axis2_wsdl_soap_operation_t *soap_operation = NULL;
+
AXIS2_ENV_CHECK(env, NULL);
AXIS2_PARAM_CHECK((*env)->error, type, NULL);
- axis2_wsdl_soap_operation_t *soap_operation =
- axis2_wsdl_soap_operation_create(env);
- AXIS2_WSDL_EXTENSIBLE_ELEMENT_SET_TYPE(soap_operation->extensible_element, env, type);
+ soap_operation = axis2_wsdl_soap_operation_create(env);
+ if(AXIS2_FAILURE == AXIS2_WSDL_EXTENSIBLE_ELEMENT_SET_TYPE(soap_operation->
+ extensible_element, env, type))
+ {
+ axis2_wsdl_soap_operation_free(soap_operation, env);
+ soap_operation = NULL;
+ }
return soap_operation;
+
}
/***************************Function implementation****************************/
@@ -127,23 +139,33 @@
axis2_wsdl_soap_operation_t *soap_operation,
axis2_env_t **env)
{
- axis2_wsdl_soap_operation_impl_t *soap_operation_impl =
- AXIS2_INTF_TO_IMPL(soap_operation);
+ axis2_wsdl_soap_operation_impl_t *soap_operation_impl = NULL;
+
AXIS2_FUNC_PARAM_CHECK(soap_operation, env, AXIS2_FAILURE);
+
+ soap_operation_impl = AXIS2_INTF_TO_IMPL(soap_operation);
+
if(NULL != soap_operation->ops)
+ {
AXIS2_FREE((*env)->allocator, soap_operation->ops);
+ soap_operation->ops = NULL;
+ }
if(NULL != soap_operation_impl->style)
{
AXIS2_FREE((*env)->allocator, soap_operation_impl->style);
+ soap_operation_impl->style = NULL;
}
if(NULL != soap_operation_impl->soap_action)
{
AXIS2_FREE((*env)->allocator, soap_operation_impl->soap_action);
+ soap_operation_impl->soap_action = NULL;
}
- AXIS2_FREE((*env)->allocator, soap_operation_impl);
+ if(soap_operation_impl)
+ AXIS2_FREE((*env)->allocator, soap_operation_impl);
+ soap_operation_impl = NULL;
return AXIS2_SUCCESS;
}
@@ -169,7 +191,10 @@
AXIS2_PARAM_CHECK((*env)->error, style, AXIS2_FAILURE);
if(soap_operation_impl->style)
+ {
AXIS2_FREE((*env)->allocator, style);
+ soap_operation_impl->style = NULL;
+ }
soap_operation_impl->style = style;
return AXIS2_SUCCESS;
@@ -196,7 +221,10 @@
AXIS2_PARAM_CHECK((*env)->error, soap_action, AXIS2_FAILURE);
if(soap_operation_impl->soap_action)
+ {
AXIS2_FREE((*env)->allocator, soap_action);
+ soap_operation_impl->soap_action = NULL;
+ }
soap_operation_impl->soap_action = soap_action;
return AXIS2_SUCCESS;
Modified: webservices/axis2/trunk/c/modules/wsdl/src/wsdl_svc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/wsdl_svc.c?rev=356124&r1=356123&r2=356124&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/wsdl_svc.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/src/wsdl_svc.c Sun Dec 11 19:13:55 2005
@@ -70,7 +70,7 @@
axis2_status_t AXIS2_CALL
axis2_wsdl_svc_set_endpoint(axis2_wsdl_svc_t *wsdl_svc,
axis2_env_t **env,
- axis2_wsdl_endpoint_t *endpoint);
+ struct axis2_wsdl_endpoint *endpoint);
axis2_wsdl_endpoint_t * AXIS2_CALL
axis2_wsdl_svc_get_endpoint(axis2_wsdl_svc_t *wsdl_svc,
@@ -95,39 +95,46 @@
axis2_wsdl_svc_t * AXIS2_CALL
axis2_wsdl_svc_create (axis2_env_t **env)
{
+ axis2_wsdl_svc_impl_t *wsdl_svc_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- axis2_wsdl_svc_impl_t *wsdl_svc_impl = (axis2_wsdl_svc_impl_t *)
- AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_wsdl_svc_t));
+ wsdl_svc_impl = (axis2_wsdl_svc_impl_t *) AXIS2_MALLOC ((*env)->allocator,
+ sizeof(axis2_wsdl_svc_t));
if(NULL == wsdl_svc_impl)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
+ wsdl_svc_impl->svc_interface = NULL;
+ wsdl_svc_impl->wsdl_svc.wsdl_component = NULL;
+ wsdl_svc_impl->endpoints = NULL;
+ wsdl_svc_impl->wsdl_svc.ops = NULL;
+
wsdl_svc_impl->wsdl_svc.wsdl_component = axis2_wsdl_component_create(env);
if(NULL == wsdl_svc_impl->wsdl_svc.wsdl_component)
{
- AXIS2_FREE((*env)->allocator, wsdl_svc_impl);
+ axis2_wsdl_svc_free(&(wsdl_svc_impl->wsdl_svc), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
wsdl_svc_impl->endpoints = axis2_hash_make(env);
if(NULL == wsdl_svc_impl->endpoints)
{
- AXIS2_WSDL_COMPONENT_FREE(wsdl_svc_impl->wsdl_svc.wsdl_component, env);
- AXIS2_FREE((*env)->allocator, wsdl_svc_impl);
+ axis2_wsdl_svc_free(&(wsdl_svc_impl->wsdl_svc), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
- wsdl_svc_impl->wsdl_svc.ops =
- (axis2_wsdl_svc_ops_t *) AXIS2_MALLOC ((*env)->allocator,
- sizeof(axis2_wsdl_svc_ops_t));
+
+ wsdl_svc_impl->wsdl_svc.ops = (axis2_wsdl_svc_ops_t *) AXIS2_MALLOC ((*env)->
+ allocator, sizeof(axis2_wsdl_svc_ops_t));
if(NULL == wsdl_svc_impl->wsdl_svc.ops)
{
- axis2_hash_free(wsdl_svc_impl->endpoints, env);
- AXIS2_WSDL_COMPONENT_FREE(wsdl_svc_impl->wsdl_svc.wsdl_component, env);
- AXIS2_FREE((*env)->allocator, wsdl_svc_impl);
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ axis2_wsdl_svc_free(&(wsdl_svc_impl->wsdl_svc), env);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ return NULL;
}
wsdl_svc_impl->wsdl_svc.ops->free = axis2_wsdl_svc_free;
@@ -141,8 +148,6 @@
wsdl_svc_impl->wsdl_svc.ops->get_svc_interface = axis2_wsdl_svc_get_svc_interface;
wsdl_svc_impl->wsdl_svc.ops->set_svc_interface = axis2_wsdl_svc_set_svc_interface;
- wsdl_svc_impl->svc_interface = NULL;
-
return &(wsdl_svc_impl->wsdl_svc);
}
@@ -152,28 +157,59 @@
axis2_wsdl_svc_free (axis2_wsdl_svc_t *wsdl_svc,
axis2_env_t **env)
{
+ axis2_wsdl_svc_impl_t *wsdl_svc_impl = NULL;
AXIS2_FUNC_PARAM_CHECK(wsdl_svc, env, AXIS2_FAILURE);
+ wsdl_svc_impl = AXIS2_INTF_TO_IMPL(wsdl_svc);
+
if(NULL != wsdl_svc->wsdl_component)
- AXIS2_WSDL_COMPONENT_FREE(wsdl_svc->wsdl_component,
- env);
+ {
+ AXIS2_WSDL_COMPONENT_FREE(wsdl_svc->wsdl_component, env);
+ wsdl_svc->wsdl_component = NULL;
+ }
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_svc)->endpoints)
- axis2_hash_free(AXIS2_INTF_TO_IMPL(wsdl_svc)->endpoints, env);
+ if(NULL != wsdl_svc_impl->endpoints)
+ {
+ axis2_hash_index_t *hi = NULL;
+ void *val = NULL;
+ for (hi = axis2_hash_first (wsdl_svc_impl->endpoints, env); hi;
+ hi = axis2_hash_next ( env, hi))
+ {
+ struct axis2_wsdl_endpoint *endpoint = NULL;
+ axis2_hash_this (hi, NULL, NULL, &val);
+ endpoint = (struct axis2_wsdl_endpoint *) val;
+ if (endpoint)
+ AXIS2_TRANSPORT_IN_DESC_FREE (endpoint, env);
+
+ val = NULL;
+ endpoint = NULL;
+
+ }
+ axis2_hash_free(wsdl_svc_impl->endpoints, env);
+ wsdl_svc_impl->endpoints = NULL;
+ }
- if(NULL != AXIS2_INTF_TO_IMPL(wsdl_svc)->svc_interface)
- AXIS2_WSDL_INTERFACE_FREE(wsdl_svc, env);
+ if(NULL != wsdl_svc_impl->svc_interface)
+ {
+ AXIS2_WSDL_INTERFACE_FREE(wsdl_svc_impl->svc_interface, env);
+ wsdl_svc_impl->svc_interface = NULL;
+ }
if(NULL != wsdl_svc->ops)
+ {
AXIS2_FREE((*env)->allocator, wsdl_svc->ops);
+ wsdl_svc->ops = NULL;
+ }
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_svc));
+ if(wsdl_svc_impl)
+ AXIS2_FREE((*env)->allocator, wsdl_svc_impl);
+ wsdl_svc_impl = NULL;
return AXIS2_SUCCESS;
}
axis2_qname_t * AXIS2_CALL
-axis2_svc_get_name(axis2_wsdl_svc_t *wsdl_svc,
+axis2_wsdl_svc_get_name(axis2_wsdl_svc_t *wsdl_svc,
axis2_env_t **env)
{
AXIS2_FUNC_PARAM_CHECK(wsdl_svc, env, NULL);
@@ -181,13 +217,22 @@
}
axis2_status_t AXIS2_CALL
-axis2_svc_set_name(axis2_wsdl_svc_t *wsdl_svc,
+axis2_wsdl_svc_set_name(axis2_wsdl_svc_t *wsdl_svc,
axis2_env_t **env,
axis2_qname_t *qname)
{
+ axis2_qname_t *svc_name = NULL;
+
AXIS2_FUNC_PARAM_CHECK(wsdl_svc, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, qname, AXIS2_FAILURE);
- AXIS2_INTF_TO_IMPL(wsdl_svc)->qname = qname;
+
+ svc_name = AXIS2_QNAME_CLONE(qname, env);
+ if(NULL == svc_name)
+ {
+ return AXIS2_FAILURE;
+ }
+
+ AXIS2_INTF_TO_IMPL(wsdl_svc)->qname = svc_name;
return AXIS2_SUCCESS;
}
@@ -214,7 +259,7 @@
axis2_status_t AXIS2_CALL
axis2_wsdl_svc_set_endpoint(axis2_wsdl_svc_t *wsdl_svc,
axis2_env_t **env,
- axis2_wsdl_endpoint_t *endpoint)
+ struct axis2_wsdl_endpoint *endpoint)
{
AXIS2_FUNC_PARAM_CHECK(wsdl_svc, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, endpoint, AXIS2_FAILURE);