You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2011/11/16 09:13:41 UTC
svn commit: r1202576 - /tomcat/jk/trunk/native/common/jk_pool.c
Author: mturk
Date: Wed Nov 16 08:13:41 2011
New Revision: 1202576
URL: http://svn.apache.org/viewvc?rev=1202576&view=rev
Log:
Directly use dyn_alloc code in alloc function instead having separate function
Modified:
tomcat/jk/trunk/native/common/jk_pool.c
Modified: tomcat/jk/trunk/native/common/jk_pool.c
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_pool.c?rev=1202576&r1=1202575&r2=1202576&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_pool.c (original)
+++ tomcat/jk/trunk/native/common/jk_pool.c Wed Nov 16 08:13:41 2011
@@ -25,10 +25,6 @@
#define DEFAULT_DYNAMIC 10
-
-static void *jk_pool_dyn_alloc(jk_pool_t *p, size_t size);
-
-
void jk_open_pool(jk_pool_t *p, jk_pool_atom_t *buf, size_t size)
{
p->pos = 0;
@@ -67,15 +63,32 @@ void *jk_pool_alloc(jk_pool_t *p, size_t
{
void *rc = NULL;
+ if (size == 0)
+ return NULL;
size = JK_ALIGN_DEFAULT(size);
if ((p->size - p->pos) >= size) {
rc = &(p->buf[p->pos]);
p->pos += size;
}
else {
- rc = jk_pool_dyn_alloc(p, size);
- }
+ if (p->dyn_size == p->dyn_pos) {
+ size_t new_dyn_size = p->dyn_size * 2 + DEFAULT_DYNAMIC;
+ void **new_dynamic = (void **)realloc(p->dynamic,
+ new_dyn_size * sizeof(void *));
+ if (new_dynamic) {
+ p->dynamic = new_dynamic;
+ p->dyn_size = new_dyn_size;
+ }
+ else {
+ return NULL;
+ }
+ }
+ rc = p->dynamic[p->dyn_pos] = malloc(size);
+ if (p->dynamic[p->dyn_pos]) {
+ p->dyn_pos++;
+ }
+ }
return rc;
}
@@ -169,33 +182,3 @@ char *jk_pool_strcatv(jk_pool_t *p, ...)
return rc;
}
-
-static void *jk_pool_dyn_alloc(jk_pool_t *p, size_t size)
-{
- void *rc;
-
- if (p->dyn_size == p->dyn_pos) {
- size_t new_dyn_size = p->dyn_size * 2 + DEFAULT_DYNAMIC;
- void **new_dynamic = (void **)malloc(new_dyn_size * sizeof(void *));
- if (new_dynamic) {
- if (p->dynamic) {
- /* Copy old dynamic slots */
- memcpy(new_dynamic, p->dynamic, p->dyn_size * sizeof(void *));
- free(p->dynamic);
- }
-
- p->dynamic = new_dynamic;
- p->dyn_size = new_dyn_size;
- }
- else {
- return NULL;
- }
- }
-
- rc = p->dynamic[p->dyn_pos] = malloc(size);
- if (p->dynamic[p->dyn_pos]) {
- p->dyn_pos++;
- }
-
- return rc;
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org