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 na...@apache.org on 2006/03/22 06:18:24 UTC

svn commit: r387727 - in /webservices/axis2/trunk/c/modules/xml: om/om_element.c om/om_node.c soap/soap_envelope.c

Author: nandika
Date: Tue Mar 21 21:18:20 2006
New Revision: 387727

URL: http://svn.apache.org/viewcvs?rev=387727&view=rev
Log:
get_text function modified 

Modified:
    webservices/axis2/trunk/c/modules/xml/om/om_element.c
    webservices/axis2/trunk/c/modules/xml/om/om_node.c
    webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c

Modified: webservices/axis2/trunk/c/modules/xml/om/om_element.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_element.c?rev=387727&r1=387726&r2=387727&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_element.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_element.c Tue Mar 21 21:18:20 2006
@@ -180,6 +180,8 @@
     axis2_om_children_iterator_t* children_iter;
 
     axis2_om_children_qname_iterator_t *children_qname_iter;
+
+    axis2_char_t *text_value;
   
 }axis2_om_element_impl_t;
 
@@ -229,6 +231,7 @@
     element->child_ele_iter = NULL;
     element->children_iter = NULL;
     element->children_qname_iter = NULL;
+    element->text_value = NULL;
     
     element->localname = (axis2_char_t *) AXIS2_STRDUP(localname,env);
     if (!element->localname)
@@ -791,12 +794,19 @@
         AXIS2_OM_CHILDREN_QNAME_ITERATOR_FREE(element_impl->children_qname_iter, env);
         element_impl->children_qname_iter = NULL;
     }
+    if(NULL != element_impl->text_value)
+    {
+        AXIS2_FREE((*env)->allocator, element_impl->text_value);
+        element_impl->text_value = NULL;
+    }
+    
     if(NULL != om_element->ops)
     {
         AXIS2_FREE ((*env)->allocator, om_element->ops);
         om_element->ops = NULL;
     }
     
+   
     AXIS2_FREE ((*env)->allocator, element_impl);
     
     return status;
@@ -1174,6 +1184,12 @@
     AXIS2_PARAM_CHECK((*env)->error, element_node, NULL);
     element_impl = AXIS2_INTF_TO_IMPL(om_element);
 
+    if(NULL != element_impl->text_value)
+    {
+        AXIS2_FREE((*env)->allocator, element_impl->text_value);
+        element_impl->text_value = NULL;
+    }
+
     temp_node = AXIS2_OM_NODE_GET_FIRST_CHILD(element_node, env);
     
     while(NULL != temp_node)
@@ -1207,16 +1223,15 @@
                 }
                 else if(!dest && temp_text && AXIS2_STRCMP(temp_text, "") != 0)
                 {
-                    /* We do not need to dup this here - Samisa
-                    dest = AXIS2_STRDUP(temp_text, env); */
-                    dest = temp_text;
+                    dest = AXIS2_STRDUP(temp_text, env); 
                 }
             }
         }
         temp_node = AXIS2_OM_NODE_GET_NEXT_SIBLING(temp_node, env);
     }
     
-    return dest;
+    element_impl->text_value = dest;
+    return element_impl->text_value;
 }                          
 
 axis2_status_t AXIS2_CALL

Modified: webservices/axis2/trunk/c/modules/xml/om/om_node.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_node.c?rev=387727&r1=387726&r2=387727&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_node.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_node.c Tue Mar 21 21:18:20 2006
@@ -350,8 +350,8 @@
 */
 AXIS2_DECLARE(axis2_status_t)
 axis2_om_node_set_parent (axis2_om_node_t *om_node,
-                               axis2_env_t **env,
-                               axis2_om_node_t * parent)
+                          axis2_env_t **env,
+                          axis2_om_node_t * parent)
 {
     axis2_om_node_impl_t *node_impl = NULL;
     AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
@@ -682,6 +682,8 @@
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, om_node, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, first_child, AXIS2_FAILURE);
+    /** set the parent */
+    axis2_om_node_set_parent(first_child, env, om_node);
     
     AXIS2_INTF_TO_IMPL(om_node)->first_child = first_child;
     return AXIS2_SUCCESS;

Modified: webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c?rev=387727&r1=387726&r2=387727&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c Tue Mar 21 21:18:20 2006
@@ -491,7 +491,7 @@
                                             if(NULL != text)
                                             {
                                                 AXIS2_OM_ELEMENT_SET_TEXT(fault_code_om_ele, env, text, fault_code_om_node);
-                                                AXIS2_FREE((*env)->allocator, text);
+                                              /*  AXIS2_FREE((*env)->allocator, text); */
                                              }
                                              AXIS2_OM_NODE_FREE_TREE(fault_value_om_node, env);
                                         }
@@ -538,7 +538,7 @@
                                             {
                                                 AXIS2_OM_ELEMENT_SET_TEXT( fault_reason_om_ele, 
                                                     env, text, fault_reason_om_node);   
-                                               AXIS2_FREE((*env)->allocator, text); 
+                                              /* AXIS2_FREE((*env)->allocator, text);  */
                                             }   
                                         }                     
                                         AXIS2_OM_NODE_FREE_TREE(fault_text_om_node, env);