You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2006/02/28 05:32:53 UTC

svn commit: r381561 - in /webservices/axis2/trunk/c: include/ modules/core/deployment/ modules/core/description/ modules/core/engine/

Author: damitha
Date: Mon Feb 27 20:32:48 2006
New Revision: 381561

URL: http://svn.apache.org/viewcvs?rev=381561&view=rev
Log:
More leak fixes

Modified:
    webservices/axis2/trunk/c/include/axis2_transport_in_desc.h
    webservices/axis2/trunk/c/include/axis2_transport_out_desc.h
    webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
    webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c
    webservices/axis2/trunk/c/modules/core/description/param_container.c
    webservices/axis2/trunk/c/modules/core/description/transport_in_desc.c
    webservices/axis2/trunk/c/modules/core/description/transport_out_desc.c
    webservices/axis2/trunk/c/modules/core/engine/conf.c

Modified: webservices/axis2/trunk/c/include/axis2_transport_in_desc.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_transport_in_desc.h?rev=381561&r1=381560&r2=381561&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_transport_in_desc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_transport_in_desc.h Mon Feb 27 20:32:48 2006
@@ -127,6 +127,20 @@
     set_faultphase) (struct axis2_transport_in_desc *transport_in,
                                             axis2_env_t **env,
                                             struct axis2_phase *faultphase);
+    axis2_status_t (AXIS2_CALL *
+    add_param) (axis2_transport_in_desc_t *transport_in_desc,
+                axis2_env_t **env,
+                axis2_param_t *param);
+
+    axis2_param_t *(AXIS2_CALL *
+    get_param) (axis2_transport_in_desc_t *transport_in_desc,
+                axis2_env_t **env,
+                axis2_char_t *param_name);
+
+    axis2_bool_t (AXIS2_CALL *
+    is_param_locked) (axis2_transport_in_desc_t *transport_in_desc,
+                      axis2_env_t **env,
+                      axis2_char_t *param_name);
         
 
 };
@@ -188,6 +202,15 @@
         
 #define AXIS2_TRANSPORT_IN_DESC_SET_FAULTPHASE(transport_in_desc, env, faultphase) \
 		((transport_in_desc)->ops->set_faultphase (transport_in_desc, env, faultphase))
+
+#define AXIS2_TRANSPORT_IN_DESC_ADD_PARAM(transport_in_desc, env, param) \
+		((transport_in_desc)->ops->add_param (transport_in_desc, env, param)) 
+
+#define AXIS2_TRANSPORT_IN_DESC_GET_PARAM(transport_in_desc, env, param_name) \
+		((transport_in_desc)->ops->get_param (transport_in_desc, env, param_name)) 
+
+#define AXIS2_TRANSPORT_IN_DESC_IS_PARAM_LOCKED(transport_in_desc, env, param_name) \
+		((transport_in_desc)->ops->is_param_locked (transport_in_desc, env, param_name)) 
 
 /*************************** End of function macros ***************************/
 

Modified: webservices/axis2/trunk/c/include/axis2_transport_out_desc.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_transport_out_desc.h?rev=381561&r1=381560&r2=381561&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_transport_out_desc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_transport_out_desc.h Mon Feb 27 20:32:48 2006
@@ -128,6 +128,20 @@
                         axis2_env_t **env,
                         struct axis2_phase *faultphase);
         
+    axis2_status_t (AXIS2_CALL *
+    add_param) (axis2_transport_out_desc_t *transport_out_desc,
+                axis2_env_t **env,
+                axis2_param_t *param);
+
+    axis2_param_t *(AXIS2_CALL *
+    get_param) (axis2_transport_out_desc_t *transport_out_desc,
+                axis2_env_t **env,
+                axis2_char_t *param_name);
+
+    axis2_bool_t (AXIS2_CALL *
+    is_param_locked) (axis2_transport_out_desc_t *transport_out_desc,
+                      axis2_env_t **env,
+                      axis2_char_t *param_name);
 
 };
 
@@ -187,6 +201,15 @@
         
 #define AXIS2_TRANSPORT_OUT_DESC_SET_FAULTPHASE(transport_out_desc, env, faultphase) \
 		((transport_out_desc)->ops->set_faultphase (transport_out_desc, env, faultphase))
+
+#define AXIS2_TRANSPORT_OUT_DESC_ADD_PARAM(transport_out_desc, env, param) \
+		((transport_out_desc)->ops->add_param (transport_out_desc, env, param)) 
+
+#define AXIS2_TRANSPORT_OUT_DESC_GET_PARAM(transport_out_desc, env, param_name) \
+		((transport_out_desc)->ops->get_param (transport_out_desc, env, param_name)) 
+
+#define AXIS2_TRANSPORT_OUT_DESC_IS_PARAM_LOCKED(transport_out_desc, env, param_name) \
+		((transport_out_desc)->ops->is_param_locked (transport_out_desc, env, param_name)) 
 
 /*************************** End of function macros ***************************/
 

Modified: webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c?rev=381561&r1=381560&r2=381561&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c Mon Feb 27 20:32:48 2006
@@ -719,7 +719,7 @@
              */
             AXIS2_DLL_DESC_SET_NAME(dll_desc, env, dll_name);
             AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_TRANSPORT_SENDER_DLL);
-            impl_info_param = axis2_param_create(env, NULL, NULL); 
+            impl_info_param = axis2_param_create(env, class_name, NULL); 
             if(!impl_info_param)
             {
                 return AXIS2_FAILURE;
@@ -728,7 +728,8 @@
             impl_info_param->ops->value_free = axis2_dll_desc_free_void_arg;
             axis2_class_loader_init(env);
             transport_sender = axis2_class_loader_create_dll(env, impl_info_param);
-            AXIS2_PARAM_FREE(impl_info_param, env);
+            AXIS2_TRANSPORT_OUT_DESC_ADD_PARAM(transport_out, env, 
+                    impl_info_param);
             status = AXIS2_TRANSPORT_OUT_DESC_SET_SENDER(transport_out, env, 
                 transport_sender);
             if(AXIS2_SUCCESS != status)
@@ -910,15 +911,15 @@
                  * set full dll path here instead of dll lib name only */
                 AXIS2_DLL_DESC_SET_NAME(dll_desc, env, dll_name);
                 AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_TRANSPORT_RECV_DLL);
-                impl_info_param = axis2_param_create(env, NULL, NULL);
+                impl_info_param = axis2_param_create(env, class_name, NULL);
             
                 AXIS2_PARAM_SET_VALUE(impl_info_param, env, dll_desc); 
-                impl_info_param->ops->value_free = 
-                    axis2_dll_desc_free_void_arg;
+                impl_info_param->ops->value_free = axis2_dll_desc_free_void_arg;
                 axis2_class_loader_init(env);
                 recv = (axis2_transport_receiver_t *) 
                     axis2_class_loader_create_dll(env, impl_info_param);
-                AXIS2_PARAM_FREE(impl_info_param, env);
+                AXIS2_TRANSPORT_IN_DESC_ADD_PARAM(transport_in, env, 
+                    impl_info_param);
                 stat = AXIS2_TRANSPORT_IN_DESC_SET_RECV(transport_in, env, 
                     recv);
             }

Modified: webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c?rev=381561&r1=381560&r2=381561&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c Mon Feb 27 20:32:48 2006
@@ -1281,7 +1281,7 @@
     dll_path = NULL;
     
     AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_MODULE_DLL);
-    impl_info_param = axis2_param_create(env, NULL, NULL);
+    impl_info_param = axis2_param_create(env, read_in_dll, NULL);
     AXIS2_PARAM_SET_VALUE(impl_info_param, env, dll_desc);
     impl_info_param->ops->value_free = axis2_dll_desc_free_void_arg;
     axis2_class_loader_init(env);

Modified: webservices/axis2/trunk/c/modules/core/description/param_container.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/param_container.c?rev=381561&r1=381560&r2=381561&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/param_container.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/param_container.c Mon Feb 27 20:32:48 2006
@@ -157,18 +157,17 @@
 
 axis2_status_t AXIS2_CALL 
 axis2_param_container_add_param (axis2_param_container_t *param_container, 
-					axis2_env_t **env, 
-					axis2_param_t *param)
+					             axis2_env_t **env, 
+					             axis2_param_t *param)
 {
     axis2_param_container_impl_t *param_container_impl = NULL;
     axis2_char_t *param_name = NULL;
     
 	AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK((*env)->error, param, AXIS2_FAILURE);
-	
+    AXIS2_PARAM_CHECK((*env)->error, param, AXIS2_FAILURE);	
     param_container_impl = AXIS2_INTF_TO_IMPL(param_container);
     
-	if (NULL == (param_container_impl->params))
+	if (NULL == param_container_impl->params)
 	{                    
 		param_container_impl->params = axis2_hash_make (env);
         if(!param_container_impl->params)
@@ -177,7 +176,13 @@
         }
 	}
     param_name = AXIS2_PARAM_GET_NAME(param, env);
-	axis2_hash_set (AXIS2_INTF_TO_IMPL(param_container)->params	
+    if(!param_name)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_STATE_PARAM, 
+            AXIS2_FAILURE);
+        return AXIS2_FAILURE;
+    }
+	axis2_hash_set (param_container_impl->params	
 		, param_name, AXIS2_HASH_KEY_STRING, param);
 	
 	return AXIS2_SUCCESS;

Modified: webservices/axis2/trunk/c/modules/core/description/transport_in_desc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/transport_in_desc.c?rev=381561&r1=381560&r2=381561&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/transport_in_desc.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/transport_in_desc.c Mon Feb 27 20:32:48 2006
@@ -24,38 +24,31 @@
  */ 
 typedef struct axis2_transport_in_desc_impl
 {
-	axis2_transport_in_desc_t transport_in;
-    
+	axis2_transport_in_desc_t transport_in;    
     /** 
      * Field flowInclude 
      * This will have a shallow copy and will not be freed by the descructor
      */
     axis2_flow_t *inflow;
-    
     /** 
      * Field flowInclude 
      * This will have a shallow copy and will not be freed by the descructor
      */
     axis2_flow_t *faultflow;
-        
     /** 
      * Field name
      * This will have a shallow copy and will not be freed by the descructor
      */
     axis2_qname_t *qname;
-    
     /**
      * This will have a shallow copy and will not be freed by the descructor
      */
     axis2_transport_receiver_t *recv;
-    
     /** to store handler in inFlow */
     axis2_phase_t *in_phase;
-        
     /** to store handler Fault in inFlow */
     axis2_phase_t *faultphase;
     
-    
 } axis2_transport_in_desc_impl_t;
 
 #define AXIS2_INTF_TO_IMPL(transport_in) ((axis2_transport_in_desc_impl_t *)transport_in)
@@ -121,6 +114,21 @@
                                         axis2_env_t **env,
                                         axis2_phase_t *faultphase);
 
+axis2_status_t AXIS2_CALL
+axis2_transport_in_desc_add_param(axis2_transport_in_desc_t *transport_in_desc,
+                                    axis2_env_t **env,
+                                    axis2_param_t *param);
+
+axis2_param_t *AXIS2_CALL
+axis2_transport_in_desc_get_param(axis2_transport_in_desc_t *transport_in_desc,
+                                    axis2_env_t **env,
+                                    axis2_char_t *param_name);
+
+axis2_bool_t AXIS2_CALL
+axis2_transport_in_desc_is_param_locked (axis2_transport_in_desc_t *
+                                                transport_in_desc,
+                                            axis2_env_t **env,
+                                            axis2_char_t *param_name);
 
 /************************** End of function prototypes ************************/
 
@@ -196,6 +204,12 @@
         axis2_transport_in_desc_get_faultphase;
     transport_in_impl->transport_in.ops->set_faultphase = 
         axis2_transport_in_desc_set_faultphase;
+    transport_in_impl->transport_in.ops->add_param = 
+    axis2_transport_in_desc_add_param;
+    transport_in_impl->transport_in.ops->get_param = 
+    axis2_transport_in_desc_get_param;
+    transport_in_impl->transport_in.ops->is_param_locked = 
+    axis2_transport_in_desc_is_param_locked;
     
 	return &(transport_in_impl->transport_in);
 }
@@ -218,10 +232,10 @@
         transport_in->ops = NULL;
     }
     
-    if(NULL != transport_in_impl->transport_in.param_container)
+    if(NULL != transport_in->param_container)
     {
-        AXIS2_PARAM_CONTAINER_FREE(transport_in_impl->transport_in.param_container, env);
-        transport_in_impl->transport_in.param_container = NULL;
+        AXIS2_PARAM_CONTAINER_FREE(transport_in->param_container, env);
+        transport_in->param_container = NULL;
     }
     
     if(NULL != transport_in_impl->qname)
@@ -422,4 +436,41 @@
     transport_in_impl->faultphase = faultphase;
     return AXIS2_SUCCESS;
     
+}
+
+axis2_status_t AXIS2_CALL
+axis2_transport_in_desc_add_param(axis2_transport_in_desc_t *transport_in_desc,
+                                    axis2_env_t **env,
+                                    axis2_param_t *param)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, param, AXIS2_FAILURE);    
+    
+    return AXIS2_PARAM_CONTAINER_ADD_PARAM(transport_in_desc->
+            param_container, env, param);
+}
+
+axis2_param_t *AXIS2_CALL
+axis2_transport_in_desc_get_param(axis2_transport_in_desc_t *transport_in_desc,
+                                    axis2_env_t **env,
+                                    axis2_char_t *param_name)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, param_name, NULL);    
+    
+    return AXIS2_PARAM_CONTAINER_GET_PARAM(transport_in_desc->param_container, 
+        env, param_name);
+}
+
+axis2_bool_t AXIS2_CALL
+axis2_transport_in_desc_is_param_locked (axis2_transport_in_desc_t *
+                                                transport_in_desc,
+                                            axis2_env_t **env,
+                                            axis2_char_t *param_name)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, param_name, AXIS2_FAILURE);    
+
+    return AXIS2_PARAM_CONTAINER_IS_PARAM_LOCKED(transport_in_desc->
+        param_container, env, param_name);
 }

Modified: webservices/axis2/trunk/c/modules/core/description/transport_out_desc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/transport_out_desc.c?rev=381561&r1=381560&r2=381561&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/transport_out_desc.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/transport_out_desc.c Mon Feb 27 20:32:48 2006
@@ -120,6 +120,21 @@
                                         axis2_env_t **env,
                                         axis2_phase_t *faultphase);
 
+axis2_status_t AXIS2_CALL
+axis2_transport_out_desc_add_param(axis2_transport_out_desc_t *transport_out_desc,
+                                    axis2_env_t **env,
+                                    axis2_param_t *param);
+
+axis2_param_t *AXIS2_CALL
+axis2_transport_out_desc_get_param(axis2_transport_out_desc_t *transport_out_desc,
+                                    axis2_env_t **env,
+                                    axis2_char_t *param_name);
+
+axis2_bool_t AXIS2_CALL
+axis2_transport_out_desc_is_param_locked (axis2_transport_out_desc_t *
+                                                transport_out_desc,
+                                            axis2_env_t **env,
+                                            axis2_char_t *param_name);
 
 /************************** End of function prototypes ************************/
 
@@ -194,6 +209,12 @@
         axis2_transport_out_desc_get_faultphase;
     transport_out_impl->transport_out.ops->set_faultphase = 
         axis2_transport_out_desc_set_faultphase;
+    transport_out_impl->transport_out.ops->add_param = 
+    axis2_transport_out_desc_add_param;
+    transport_out_impl->transport_out.ops->get_param = 
+    axis2_transport_out_desc_get_param;
+    transport_out_impl->transport_out.ops->is_param_locked = 
+    axis2_transport_out_desc_is_param_locked;
     
 	return &(transport_out_impl->transport_out);
 }
@@ -418,4 +439,41 @@
     transport_out_impl->faultphase = faultphase;
     return AXIS2_SUCCESS;
     
+}
+
+axis2_status_t AXIS2_CALL
+axis2_transport_out_desc_add_param(axis2_transport_out_desc_t *transport_out_desc,
+                                    axis2_env_t **env,
+                                    axis2_param_t *param)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, param, AXIS2_FAILURE);    
+    
+    return AXIS2_PARAM_CONTAINER_ADD_PARAM(transport_out_desc->
+            param_container, env, param);
+}
+
+axis2_param_t *AXIS2_CALL
+axis2_transport_out_desc_get_param(axis2_transport_out_desc_t *transport_out_desc,
+                                    axis2_env_t **env,
+                                    axis2_char_t *param_name)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, param_name, NULL);    
+    
+    return AXIS2_PARAM_CONTAINER_GET_PARAM(transport_out_desc->param_container, 
+        env, param_name);
+}
+
+axis2_bool_t AXIS2_CALL
+axis2_transport_out_desc_is_param_locked (axis2_transport_out_desc_t *
+                                                transport_out_desc,
+                                            axis2_env_t **env,
+                                            axis2_char_t *param_name)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, param_name, AXIS2_FAILURE);    
+
+    return AXIS2_PARAM_CONTAINER_IS_PARAM_LOCKED(transport_out_desc->
+        param_container, env, param_name);
 }

Modified: webservices/axis2/trunk/c/modules/core/engine/conf.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/conf.c?rev=381561&r1=381560&r2=381561&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/conf.c (original)
+++ webservices/axis2/trunk/c/modules/core/engine/conf.c Mon Feb 27 20:32:48 2006
@@ -608,14 +608,15 @@
                  hi = axis2_hash_next ( env, hi))
         {
             axis2_transport_in_desc_t *transport_in = NULL;
+
             axis2_hash_this (hi, NULL, NULL, &val);
             transport_in = (axis2_transport_in_desc_t *) val;
             if (transport_in)
-               AXIS2_TRANSPORT_IN_DESC_FREE (transport_in, env);
-            
+            {
+                AXIS2_TRANSPORT_IN_DESC_FREE (transport_in, env);
+                transport_in = NULL;
+            }
             val = NULL;
-            transport_in = NULL;
-               
         }
         axis2_hash_free(config_impl->transports_in, env);
         config_impl->transports_in = NULL;