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 2012/03/28 14:16:52 UTC

svn commit: r1306287 - in /tomcat/jk/trunk/native/common: jk_map.c jk_map.h

Author: mturk
Date: Wed Mar 28 12:16:52 2012
New Revision: 1306287

URL: http://svn.apache.org/viewvc?rev=1306287&view=rev
Log:
Add global jk_map id. Similar to uri mappings this is for getting the unique context where workers gets created

Modified:
    tomcat/jk/trunk/native/common/jk_map.c
    tomcat/jk/trunk/native/common/jk_map.h

Modified: tomcat/jk/trunk/native/common/jk_map.c
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_map.c?rev=1306287&r1=1306286&r2=1306287&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_map.c (original)
+++ tomcat/jk/trunk/native/common/jk_map.c Wed Mar 28 12:16:52 2012
@@ -64,19 +64,7 @@
     }                                          \
 }
 
-struct jk_map
-{
-    jk_pool_t p;
-    jk_pool_atom_t buf[SMALL_POOL_SIZE];
-
-    const char **names;
-    const void **values;
-    unsigned int *keys;
-
-    unsigned int capacity;
-    unsigned int size;
-};
-
+static volatile int global_map_id = 0;
 static void trim_prp_comment(char *prp);
 static size_t trim(char *s);
 static int map_realloc(jk_map_t *m);
@@ -85,7 +73,9 @@ static char *jk_map_replace_properties(j
 int jk_map_alloc(jk_map_t **m)
 {
     if (m) {
-        return jk_map_open(*m = (jk_map_t *)malloc(sizeof(jk_map_t)));
+        *m = (jk_map_t *)calloc(1, sizeof(jk_map_t));
+        if (*m)
+            return jk_map_open(*m);
     }
 
     return JK_FALSE;
@@ -110,6 +100,7 @@ int jk_map_open(jk_map_t *m)
 
     if (m) {
         jk_open_pool(&m->p, m->buf, sizeof(jk_pool_atom_t) * SMALL_POOL_SIZE);
+        m->id = ++global_map_id;
         m->capacity = 0;
         m->size = 0;
         m->keys  = NULL;
@@ -587,7 +578,7 @@ void jk_map_dump(jk_map_t *m, jk_logger_
             }
             if (JK_IS_DEBUG_LEVEL(l)) {
                 jk_log(l, JK_LOG_DEBUG,
-                       "Dump of map: '%s' -> '%s'",
+                       "Dump of map %d: '%s' -> '%s'", m->id,
                        jk_map_name_at(m, i) ? jk_map_name_at(m, i) : "(null)",
                        jk_map_value_at(m, i) ? jk_map_value_at(m, i) : "(null)");
             }

Modified: tomcat/jk/trunk/native/common/jk_map.h
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_map.h?rev=1306287&r1=1306286&r2=1306287&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_map.h (original)
+++ tomcat/jk/trunk/native/common/jk_map.h Wed Mar 28 12:16:52 2012
@@ -24,6 +24,7 @@
 #ifndef JK_MAP_H
 #define JK_MAP_H
 
+#include "jk_pool.h"
 
 #ifdef __cplusplus
 extern "C"
@@ -34,7 +35,20 @@ extern "C"
 #define JK_MAP_HANDLE_DUPLICATES 1
 #define JK_MAP_HANDLE_RAW        2
 
-struct jk_map;
+struct jk_map
+{
+    jk_pool_t p;
+    jk_pool_atom_t buf[SMALL_POOL_SIZE];
+
+    const char **names;
+    const void **values;
+    unsigned int *keys;
+
+    unsigned int capacity;
+    unsigned int size;
+    int          id;
+};
+
 typedef struct jk_map jk_map_t;
 
 int jk_map_alloc(jk_map_t **m);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org