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 sa...@apache.org on 2005/12/01 10:12:12 UTC

svn commit: r350215 - in /webservices/axis2/trunk/c/modules: util/src/hash.c xml/om/src/axis2_om_comment.c xml/om/src/axis2_om_element.c xml/om/src/axis2_om_stax_builder.c xml/parser/libxml2/src/axis2_libxml2_writer_wrapper.c

Author: samisa
Date: Thu Dec  1 01:11:54 2005
New Revision: 350215

URL: http://svn.apache.org/viewcvs?rev=350215&view=rev
Log:
memory leaks fixed

Modified:
    webservices/axis2/trunk/c/modules/util/src/hash.c
    webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_comment.c
    webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c
    webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_stax_builder.c
    webservices/axis2/trunk/c/modules/xml/parser/libxml2/src/axis2_libxml2_writer_wrapper.c

Modified: webservices/axis2/trunk/c/modules/util/src/hash.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/hash.c?rev=350215&r1=350214&r2=350215&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/hash.c (original)
+++ webservices/axis2/trunk/c/modules/util/src/hash.c Thu Dec  1 01:11:54 2005
@@ -520,12 +520,18 @@
 AXIS2_DECLARE(axis2_status_t)
 axis2_hash_free (axis2_hash_t *ht, axis2_env_t** environment)
 {
+    int i =0;
     AXIS2_ENV_CHECK(environment, AXIS2_FAILURE);
     if (ht)
     {
-        if (ht->free)
-            axis2_hash_entry_free (environment, ht->free);
-        AXIS2_FREE((*environment)->allocator, ht->array);
+        for(i = 0;i <ht->max; i++)
+        {
+            if(ht->array[i])
+            {
+                AXIS2_FREE((*environment)->allocator, ht->array[i]);
+            }
+        }
+        AXIS2_FREE((*environment)->allocator, (ht->array));
         AXIS2_FREE ((*environment)->allocator, ht);
         return AXIS2_SUCCESS;
     }

Modified: webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_comment.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_comment.c?rev=350215&r1=350214&r2=350215&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_comment.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_comment.c Thu Dec  1 01:11:54 2005
@@ -131,7 +131,7 @@
         AXIS2_FREE ((*env)->allocator, comment_impl->value);
     }
     AXIS2_FREE((*env)->allocator, om_comment->ops);
-    AXIS2_FREE((*env)->allocator,AXIS2_INTF_TO_IMPL(om_comment));
+    AXIS2_FREE((*env)->allocator,comment_impl);
     return AXIS2_SUCCESS;
 }
 

Modified: webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c?rev=350215&r1=350214&r2=350215&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c Thu Dec  1 01:11:54 2005
@@ -388,9 +388,10 @@
     }
 
     if (AXIS2_OM_NAMESPACE_GET_PREFIX(ns,env))
-        axis2_hash_set (AXIS2_INTF_TO_IMPL(element)->namespaces,
+    {   axis2_hash_set (AXIS2_INTF_TO_IMPL(element)->namespaces,
                         AXIS2_OM_NAMESPACE_GET_PREFIX(ns,env),
                         AXIS2_HASH_KEY_STRING, ns);
+    }
     else
     {
         axis2_hash_set (AXIS2_INTF_TO_IMPL(element)->namespaces,

Modified: webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_stax_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_stax_builder.c?rev=350215&r1=350214&r2=350215&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_stax_builder.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_stax_builder.c Thu Dec  1 01:11:54 2005
@@ -318,33 +318,43 @@
         if(AXIS2_STRCMP(temp_ns_prefix,"xmlns") == 0 || !temp_ns_prefix)
         {
              axis2_om_element_t *om_ele = NULL;
+             om_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env);
+            
              om_ns = axis2_om_namespace_create ( env,
                          temp_ns_uri, NULL );
-             om_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env);
              status = AXIS2_OM_ELEMENT_DECLARE_NAMESPACE( om_ele, env, node, om_ns);
             
              temp_ns = AXIS2_OM_ELEMENT_FIND_DECLARED_NAMESPACE(om_ele, env, temp_ns_uri, NULL);
              if(temp_ns)
-               AXIS2_OM_ELEMENT_SET_NAMESPACE (om_ele, env, om_ns, node);                        
-                                                 
+             {
+                AXIS2_OM_ELEMENT_SET_NAMESPACE (om_ele, env, om_ns, node); 
+             }                 
+             else
+             {
+                AXIS2_OM_NAMESPACE_FREE(om_ns, env);
+                om_ns = NULL;
+             }
+                       
         }
         else
-        {                                            
-           om_ns = axis2_om_namespace_create ( env,
+        {       
+            axis2_om_element_t *om_ele = NULL;
+            om_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env);
+            
+            om_ns = axis2_om_namespace_create ( env,
                          temp_ns_uri, temp_ns_prefix );
-           status = AXIS2_OM_ELEMENT_DECLARE_NAMESPACE(
-                        (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env),
-                        env, node, om_ns);
-                                     
+            status = AXIS2_OM_ELEMENT_DECLARE_NAMESPACE( om_ele, env, node, om_ns);
+                    
+            temp_ns = AXIS2_OM_ELEMENT_FIND_DECLARED_NAMESPACE(om_ele, env, temp_ns_uri,temp_ns_prefix);
+           
         }        
         AXIS2_XML_READER_XML_FREE(builder->parser, env, temp_ns_prefix);
         AXIS2_XML_READER_XML_FREE(builder->parser, env, temp_ns_uri);
-                                
         if (!om_ns)
         {
             /* something went wrong */
             return AXIS2_FAILURE;
-        }
+        }                   
     }
     /* set own namespace */
     temp_prefix = AXIS2_XML_READER_GET_PREFIX ( builder->parser, env);

Modified: webservices/axis2/trunk/c/modules/xml/parser/libxml2/src/axis2_libxml2_writer_wrapper.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/parser/libxml2/src/axis2_libxml2_writer_wrapper.c?rev=350215&r1=350214&r2=350215&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/parser/libxml2/src/axis2_libxml2_writer_wrapper.c (original)
+++ webservices/axis2/trunk/c/modules/xml/parser/libxml2/src/axis2_libxml2_writer_wrapper.c Thu Dec  1 01:11:54 2005
@@ -267,7 +267,6 @@
                    sizeof(axis2_libxml2_writer_wrapper_impl_t));
     if(!writer_impl)
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
-     
     writer_impl->xml_writer = xmlNewTextWriterFilename(filename, compression);
     
     if(!(writer_impl->xml_writer))
@@ -384,7 +383,6 @@
 {
     axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL;
     AXIS2_ENV_CHECK(env, NULL);
-    
     writer_impl = (axis2_libxml2_writer_wrapper_impl_t *)AXIS2_MALLOC((*env)->allocator,
                    sizeof(axis2_libxml2_writer_wrapper_impl_t));
     if(!writer_impl)
@@ -1369,4 +1367,4 @@
         
         writer_impl->qname_array.current_no = 0;    
     return AXIS2_SUCCESS;
-}
+}