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 2007/02/02 05:37:25 UTC

svn commit: r502482 - in /webservices/axis2/trunk/c: modules/core/transport/http/server/apache2/mod_axis2.c util/include/axis2_allocator.h util/src/allocator.c

Author: damitha
Date: Thu Feb  1 20:37:24 2007
New Revision: 502482

URL: http://svn.apache.org/viewvc?view=rev&rev=502482
Log:
in addition to local_pool and global_pool introduced a current_pool.
At any moment current pool could be global or local depending on the
pool switch. 

Modified:
    webservices/axis2/trunk/c/modules/core/transport/http/server/apache2/mod_axis2.c
    webservices/axis2/trunk/c/util/include/axis2_allocator.h
    webservices/axis2/trunk/c/util/src/allocator.c

Modified: webservices/axis2/trunk/c/modules/core/transport/http/server/apache2/mod_axis2.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/transport/http/server/apache2/mod_axis2.c?view=diff&rev=502482&r1=502481&r2=502482
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/server/apache2/mod_axis2.c (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/server/apache2/mod_axis2.c Thu Feb  1 20:37:24 2007
@@ -231,7 +231,7 @@
     }
     ap_should_client_block(req);
 
-    axis2_env->allocator->local_pool = (void*) req->pool;
+    axis2_env->allocator->current_pool = (void*) req->pool;
     rv = AXIS2_APACHE2_WORKER_PROCESS_REQUEST(axis2_worker, axis2_env, req);
 
     if (AXIS2_CRITICAL_FAILURE == rv)
@@ -245,7 +245,8 @@
 axis2_module_malloc(
     axis2_allocator_t *allocator, size_t size)
 {
-    return apr_palloc((apr_pool_t*) (allocator->local_pool), size);
+    void *ret_obj = NULL;
+    return apr_palloc((apr_pool_t*) (allocator->current_pool), size);
 }
 
 void * AXIS2_CALL
@@ -302,6 +303,7 @@
     allocator->realloc = axis2_module_realloc;
     allocator->free_fn = axis2_module_free;
     allocator->local_pool = (void*) pool;
+    allocator->current_pool = (void*) pool;
     allocator->global_pool = (void*) pool;
 
     if (NULL == allocator)

Modified: webservices/axis2/trunk/c/util/include/axis2_allocator.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axis2_allocator.h?view=diff&rev=502482&r1=502481&r2=502482
==============================================================================
--- webservices/axis2/trunk/c/util/include/axis2_allocator.h (original)
+++ webservices/axis2/trunk/c/util/include/axis2_allocator.h Thu Feb  1 20:37:24 2007
@@ -77,6 +77,8 @@
          void *local_pool;
         /** global memory pool */
          void *global_pool;
+         /** memory pool in use currently */
+         void *current_pool;
     } axis2_allocator_t;
 
   /**

Modified: webservices/axis2/trunk/c/util/src/allocator.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/allocator.c?view=diff&rev=502482&r1=502481&r2=502482
==============================================================================
--- webservices/axis2/trunk/c/util/src/allocator.c (original)
+++ webservices/axis2/trunk/c/util/src/allocator.c Thu Feb  1 20:37:24 2007
@@ -81,23 +81,18 @@
 AXIS2_EXTERN void AXIS2_CALL 
 axis2_allocator_switch_to_global_pool(axis2_allocator_t *allocator)
 {   
-    void *temp = NULL;
     if (!allocator)
         return;
-    temp = allocator->local_pool;
-    allocator->local_pool = allocator->global_pool;
-    allocator->global_pool = temp;
+    allocator->current_pool = allocator->global_pool;
     return;
 }
 
 AXIS2_EXTERN void AXIS2_CALL 
 axis2_allocator_switch_to_local_pool(axis2_allocator_t *allocator)
 {
-    void *temp = NULL;
     if (!allocator)
         return;
-    temp = allocator->global_pool;
-    allocator->global_pool = allocator->local_pool;
-    allocator->local_pool = temp;
+    allocator->current_pool = allocator->local_pool;
     return;
 }
+



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