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/06/02 13:12:27 UTC

svn commit: r411128 - in /webservices/axis2/trunk/c: modules/core/deployment/desc_builder.c util/include/axis2_param.h util/src/param.c

Author: damitha
Date: Fri Jun  2 04:12:27 2006
New Revision: 411128

URL: http://svn.apache.org/viewvc?rev=411128&view=rev
Log:
There was a bug in my earlier fix of Jira AXIS2 C 177.
Fixed it.

Modified:
    webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c
    webservices/axis2/trunk/c/util/include/axis2_param.h
    webservices/axis2/trunk/c/util/src/param.c

Modified: webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c?rev=411128&r1=411127&r2=411128&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c Fri Jun  2 04:12:27 2006
@@ -655,32 +655,22 @@
     childs = AXIS2_OM_ELEMENT_GET_CHILD_ELEMENTS(param_element, env, param_node);
     if(childs)
     {
-        axis2_hash_t *value_map = NULL;
+        axis2_array_list_t *value_list = NULL;
         
-        value_map = axis2_hash_make(env);
-        AXIS2_PARAM_SET_VALUE_MAP(param, env, value_map);
+        value_list = axis2_array_list_create(env, 0);
+        AXIS2_PARAM_SET_VALUE_LIST(param, env, value_list);
         
         while(AXIS2_TRUE == AXIS2_OM_CHILD_ELEMENT_ITERATOR_HAS_NEXT(childs, env))
         {
             axis2_om_node_t *node = NULL;
             axis2_om_element_t *element = NULL;
             axis2_param_t *param = NULL;
-            axis2_qname_t *att_qname = NULL;
-            axis2_om_attribute_t *para_name = NULL;
             axis2_char_t *pname = NULL;
             
             node = AXIS2_OM_CHILD_ELEMENT_ITERATOR_NEXT(childs, env);
             element = AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env);
-            att_qname = axis2_qname_create(env, AXIS2_ATTNAME, NULL, NULL);
-            para_name = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(element, env, 
-                att_qname);
-            AXIS2_QNAME_FREE(att_qname, env);
-            if(!para_name)
-            {
-                AXIS2_PARAM_FREE(param, env);
-                return AXIS2_FAILURE;
-            }
-            pname = AXIS2_OM_ATTRIBUTE_GET_VALUE(para_name, env);
+            param = axis2_param_create(env, NULL, NULL);
+            pname = AXIS2_OM_ELEMENT_GET_LOCALNAME(element, env);
             status = AXIS2_PARAM_SET_NAME(param, env, pname);
             if(AXIS2_SUCCESS != status)
             {
@@ -689,7 +679,7 @@
             }
             AXIS2_PARAM_SET_PARAM_TYPE(param, env, AXIS2_DOM_PARAM);
             set_attrs_and_value(param, env, element, node);
-            axis2_hash_set(value_map, pname, AXIS2_HASH_KEY_STRING, param);
+            AXIS2_ARRAY_LIST_ADD(value_list, env, param);
         }
     }
     else

Modified: webservices/axis2/trunk/c/util/include/axis2_param.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axis2_param.h?rev=411128&r1=411127&r2=411128&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/include/axis2_param.h (original)
+++ webservices/axis2/trunk/c/util/include/axis2_param.h Fri Jun  2 04:12:27 2006
@@ -25,6 +25,7 @@
 #include <axis2_utils_defines.h>
 #include <axis2_env.h>
 #include <axis2_hash.h>
+#include <axis2_array_list.h>
 
 #ifdef __cplusplus
 extern "C"
@@ -140,13 +141,13 @@
             const axis2_env_t *env);
          
     axis2_status_t (AXIS2_CALL *
-    set_value_map) (
+    set_value_list) (
             struct axis2_param *param,
             const axis2_env_t *env,
-            axis2_hash_t *value_map);
+            axis2_array_list_t *value_list);
 
-    axis2_hash_t* (AXIS2_CALL *
-    get_value_map) (
+    axis2_array_list_t* (AXIS2_CALL *
+    get_value_list) (
             struct axis2_param *param,
             const axis2_env_t *env);
 
@@ -205,11 +206,11 @@
 #define AXIS2_PARAM_GET_ATTRIBUTES(param, env) \
     ((param)->ops->get_attributes (param, env))
 	    
-#define AXIS2_PARAM_SET_VALUE_MAP(param, env, value_map) \
-    ((param)->ops->set_value_map (param , env, value_map))
+#define AXIS2_PARAM_SET_VALUE_LIST(param, env, value_list) \
+    ((param)->ops->set_value_list (param , env, value_list))
 
-#define AXIS2_PARAM_GET_VALUE_MAP(param, env) \
-    ((param)->ops->get_value_map (param, env))
+#define AXIS2_PARAM_GET_VALUE_LIST(param, env) \
+    ((param)->ops->get_value_list (param, env))
 	
 /** @} */
     

Modified: webservices/axis2/trunk/c/util/src/param.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/param.c?rev=411128&r1=411127&r2=411128&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/param.c (original)
+++ webservices/axis2/trunk/c/util/src/param.c Fri Jun  2 04:12:27 2006
@@ -32,7 +32,7 @@
     /** Parameter type */
     int type; /*default is AXIS2_TEXT_PARAM */
     axis2_hash_t *attrs;
-    axis2_hash_t *value_map;
+    axis2_array_list_t *value_list;
 
 } axis2_param_impl_t;
 
@@ -85,13 +85,13 @@
         const axis2_env_t *env);
 
 axis2_status_t AXIS2_CALL 
-axis2_param_set_value_map(
+axis2_param_set_value_list(
         axis2_param_t *param,
         const axis2_env_t *env,
-        axis2_hash_t *value_map);
+        axis2_array_list_t *value_list);
 
-axis2_hash_t* AXIS2_CALL 
-axis2_param_get_value_map(
+axis2_array_list_t* AXIS2_CALL 
+axis2_param_get_value_list(
         axis2_param_t *param,
         const axis2_env_t *env);
 
@@ -121,7 +121,7 @@
     param_impl->locked = AXIS2_FALSE;
     param_impl->type = AXIS2_TEXT_PARAM;
     param_impl->attrs = NULL;
-    param_impl->value_map = NULL;
+    param_impl->value_list = NULL;
     
     param_impl->param.ops = 
 		AXIS2_MALLOC (env->allocator, sizeof(axis2_param_ops_t));
@@ -147,10 +147,10 @@
         axis2_param_set_attributes;
     param_impl->param.ops->get_attributes = 
         axis2_param_get_attributes;
-    param_impl->param.ops->set_value_map = 
-        axis2_param_set_value_map;
-    param_impl->param.ops->get_value_map = 
-        axis2_param_get_value_map;
+    param_impl->param.ops->set_value_list = 
+        axis2_param_set_value_list;
+    param_impl->param.ops->get_value_list = 
+        axis2_param_get_value_list;
     param_impl->param.ops->free = axis2_param_free;
     
     return &(param_impl->param);
@@ -294,46 +294,45 @@
 }
 
 axis2_status_t AXIS2_CALL 
-axis2_param_set_value_map(
+axis2_param_set_value_list(
         axis2_param_t *param,
         const axis2_env_t *env,
-        axis2_hash_t *value_map)
+        axis2_array_list_t *value_list)
 {
     axis2_param_impl_t *param_impl = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, value_map, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, value_list, AXIS2_FAILURE);
     param_impl = AXIS2_INTF_TO_IMPL(param);
-
-    if(param_impl->value_map)
+ 
+    if(param_impl->value_list)
     {
-        axis2_hash_index_t *i = NULL;
-        void *v = NULL;
-
-        for (i = axis2_hash_first (param_impl->value_map, env); i; 
-                i = axis2_hash_next (env, i))
+        int i = 0, size = 0;
+        
+        size = AXIS2_ARRAY_LIST_SIZE(param_impl->value_list, env);
+        for (i = 0; i < size; i++)
         {
             axis2_param_t *param = NULL;
-            
-            axis2_hash_this (i, NULL, NULL, &v);
-            param = (axis2_param_t *) v;
+
+            param = (axis2_param_t *) AXIS2_ARRAY_LIST_GET(
+                    param_impl->value_list, env, i);
             AXIS2_PARAM_FREE(param, env);
         }
-        axis2_hash_free(param_impl->value_map, env);
+        AXIS2_ARRAY_LIST_FREE(param_impl->value_list, env);
     }
-   
-    param_impl->value_map = value_map;
+    param_impl->value_list = value_list;
+
     return AXIS2_SUCCESS;
 }
 
-axis2_hash_t* AXIS2_CALL 
-axis2_param_get_value_map(
+axis2_array_list_t* AXIS2_CALL 
+axis2_param_get_value_list(
         axis2_param_t *param,
         const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return AXIS2_INTF_TO_IMPL(param)->value_map;
+    return AXIS2_INTF_TO_IMPL(param)->value_list;
 }
 
 axis2_status_t AXIS2_CALL 
@@ -374,21 +373,20 @@
         axis2_hash_free(param_impl->attrs, env);
     }
     
-    if(param_impl->value_map)
+    if(param_impl->value_list)
     {
-        axis2_hash_index_t *i = NULL;
-        void *v = NULL;
-
-        for (i = axis2_hash_first (param_impl->value_map, env); i; 
-                i = axis2_hash_next (env, i))
+        int i = 0, size = 0;
+        
+        size = AXIS2_ARRAY_LIST_SIZE(param_impl->value_list, env);
+        for (i = 0; i < size; i++)
         {
             axis2_param_t *param = NULL;
 
-            axis2_hash_this (i, NULL, NULL, &v);
-            param = (axis2_param_t *) v;
+            param = (axis2_param_t *) AXIS2_ARRAY_LIST_GET(
+                    param_impl->value_list, env, i);
             AXIS2_PARAM_FREE(param, env);
         }
-        axis2_hash_free(param_impl->value_map, env);
+        AXIS2_ARRAY_LIST_FREE(param_impl->value_list, env);
     }
     param_name = axis2_param_get_name(param, env);
     AXIS2_FREE(env->allocator, param_name);



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org