apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sander Striker" <stri...@apache.org>
Subject [PATCH] Default tagging of pools in debug mode [2]
Date Sun, 13 Jan 2002 12:14:49 GMT
Hi,

This is the approach we could take to set a tag by default
(at create time in debug mode).  It introduces a macro to
concatenate __FILE__ and __LINE__.  Maybe this belongs at
a more general place in APR.

Sander


Index: include/apr_pools.h
===================================================================
RCS file: /home/cvs/apr/include/apr_pools.h,v
retrieving revision 1.69
diff -u -r1.69 apr_pools.h
--- include/apr_pools.h	13 Jan 2002 02:12:24 -0000	1.69
+++ include/apr_pools.h	13 Jan 2002 12:03:19 -0000
@@ -100,6 +100,11 @@
 #if defined(APR_POOL_DEBUG_VERBOSE) && !defined(APR_POOL_DEBUG)
 #define APR_POOL_DEBUG
 #endif    
+
+#define APR_POOL_STRINGIZE(x) APR_POOL__STRINGIZE(x)
+#define APR_POOL__STRINGIZE(x) #x
+#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_POOL_STRINGIZE(__LINE__)
+    
     
 /** The fundamental pool type */
 typedef struct apr_pool_t apr_pool_t;
@@ -161,14 +166,13 @@
 #if defined(APR_POOL_DEBUG)
 #define apr_pool_create_ex(newpool, parent, abort_fn, flag)  \
     apr_pool_create_ex_debug(newpool, parent, abort_fn, flag, \
-                             __FILE__, __LINE__)
+                             APR_POOL__FILE_LINE__)
 
 APR_DECLARE(apr_status_t) apr_pool_create_ex_debug(apr_pool_t **newpool,
                                                    apr_pool_t *parent,
                                                    apr_abortfunc_t abort_fn,
                                                    apr_uint32_t flags,
-                                                   const char *file,
-                                                   int line);
+                                                   const char *file_line);
 #else
 APR_DECLARE(apr_status_t) apr_pool_create_ex(apr_pool_t **newpool,
                                              apr_pool_t *parent,
@@ -191,7 +195,7 @@
 #if defined(APR_POOL_DEBUG)
 #define apr_pool_create(newpool, parent) \
     apr_pool_create_ex_debug(newpool, parent, NULL, APR_POOL_FDEFAULT, \
-                             __FILE__, __LINE__)
+                             APR_POOL__FILE_LINE__)
 #else
 #define apr_pool_create(newpool, parent) \
     apr_pool_create_ex(newpool, parent, NULL, APR_POOL_FDEFAULT)
@@ -215,7 +219,7 @@
 #define apr_pool_sub_make(newpool, parent, abort_fn) \
     (void)apr_pool_create_ex_debug(newpool, parent, abort_fn, \
                                    APR_POOL_FDEFAULT, \
-                                   __FILE__, __LINE__)
+                                   APR_POOL__FILE_LINE__)
 #else
 #define apr_pool_sub_make(newpool, parent, abort_fn) \
     (void)apr_pool_create_ex(newpool, parent, abort_fn, APR_POOL_FDEFAULT)
@@ -232,10 +236,10 @@
  */
 #if defined(APR_POOL_DEBUG)
 #define apr_pool_clear(p) \
-    apr_pool_clear_debug(p, __FILE__, __LINE__)
+    apr_pool_clear_debug(p, APR_POOL__FILE_LINE__)
 
 APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *p,
-                                       const char *file, int line);
+                                       const char *file_line);
 #else
 APR_DECLARE(void) apr_pool_clear(apr_pool_t *p);
 #endif
@@ -248,10 +252,10 @@
  */
 #if defined(APR_POOL_DEBUG)
 #define apr_pool_destroy(p) \
-    apr_pool_destroy_debug(p, __FILE__, __LINE__)
+    apr_pool_destroy_debug(p, APR_POOL__FILE_LINE__)
 
 APR_DECLARE(void) apr_pool_destroy_debug(apr_pool_t *p,
-                                         const char *file, int line);
+                                         const char *file_line);
 #else
 APR_DECLARE(void) apr_pool_destroy(apr_pool_t *p);
 #endif
Index: memory/unix/apr_pools.c
===================================================================
RCS file: /home/cvs/apr/memory/unix/apr_pools.c,v
retrieving revision 1.130
diff -u -r1.130 apr_pools.c
--- memory/unix/apr_pools.c	13 Jan 2002 02:12:24 -0000	1.130
+++ memory/unix/apr_pools.c	13 Jan 2002 12:03:26 -0000
@@ -161,8 +161,7 @@
 
 #else /* !defined(APR_POOL_DEBUG) */
     debug_node_t         *nodes;
-    const char           *file;
-    int                   line;
+    const char           *file_line;
     unsigned int          stat_alloc;
     unsigned int          stat_total_alloc;
     unsigned int          stat_clear;
@@ -987,7 +986,7 @@
  * Pool creation/destruction (debug)
  */
 
-static void pool_clear_debug(apr_pool_t *pool, const char *file, int line)
+static void pool_clear_debug(apr_pool_t *pool, const char *file_line)
 {
     debug_node_t *node;
     apr_uint32_t index;
@@ -996,7 +995,7 @@
      * this pool thus this loop is safe and easy.
      */
     while (pool->child)
-        apr_pool_destroy_debug(pool->child, file, line);
+        apr_pool_destroy_debug(pool->child, file_line);
 
     /* Run cleanups */
     run_cleanups(pool->cleanups);
@@ -1024,45 +1023,45 @@
 }
 
 APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *pool, 
-                                       const char *file, int line)
+                                       const char *file_line)
 {
     check_integrity(pool);
     
 #if defined(APR_POOL_DEBUG_VERBOSE)
     if (file_stderr) {
         apr_file_printf(file_stderr,
-            "POOL DEBUG: CLEAR  [%10lu/%10lu/%10lu] 0x%08X \"%s\" [%s:%d] (%u/%u/%u)\n",
+            "POOL DEBUG: CLEAR  [%10lu/%10lu/%10lu] 0x%08X \"%s\" [%s] (%u/%u/%u)\n",
             (unsigned long)apr_pool_num_bytes(pool, 0),
             (unsigned long)apr_pool_num_bytes(pool, 1),
             (unsigned long)apr_pool_num_bytes(global_pool, 1),
             (unsigned int)pool, pool->tag,
-            file, line,
+            file_line,
             pool->stat_alloc, pool->stat_total_alloc, pool->stat_clear);
     }
 #endif
 
-    pool_clear_debug(pool, file, line);
+    pool_clear_debug(pool, file_line);
 }
 
 APR_DECLARE(void) apr_pool_destroy_debug(apr_pool_t *pool, 
-                                         const char *file, int line)
+                                         const char *file_line)
 {
     check_integrity(pool);
     
 #if defined(APR_POOL_DEBUG_VERBOSE)
     if (file_stderr) {
         apr_file_printf(file_stderr,
-            "POOL DEBUG: DESTROY [%10lu/%10lu/%10lu] 0x%08X \"%s\" [%s:%d] (%u/%u/%u)\n",
+            "POOL DEBUG: DESTROY [%10lu/%10lu/%10lu] 0x%08X \"%s\" [%s] (%u/%u/%u)\n",
             (unsigned long)apr_pool_num_bytes(pool, 0),
             (unsigned long)apr_pool_num_bytes(pool, 1),
             (unsigned long)apr_pool_num_bytes(global_pool, 1),
             (unsigned int)pool, pool->tag,
-            file, line,
+            file_line,
             pool->stat_alloc, pool->stat_total_alloc, pool->stat_clear);
     }
 #endif
 
-    pool_clear_debug(pool, file, line);
+    pool_clear_debug(pool, file_line);
 
     /* Remove the pool from the parents child list */
     if (pool->parent) {
@@ -1090,8 +1089,7 @@
                                                    apr_pool_t *parent,
                                                    apr_abortfunc_t abort_fn,
                                                    apr_uint32_t flags, 
-                                                   const char *file,
-                                                   int line)
+                                                   const char *file_line)
 {
     apr_pool_t *pool;
 
@@ -1115,9 +1113,8 @@
     memset(pool, 0, SIZEOF_POOL_T);
     
     pool->abort_fn = abort_fn;
-    pool->tag = "<untagged>";
-    pool->file = file;
-    pool->line = line;
+    pool->tag = file_line;
+    pool->file_line = file_line;
 
     if ((flags & APR_POOL_FNEW_ALLOCATOR) == APR_POOL_FNEW_ALLOCATOR) {
 #if APR_HAS_THREADS
@@ -1165,12 +1162,12 @@
 #if defined(APR_POOL_DEBUG_VERBOSE)
     if (file_stderr) {
         apr_file_printf(file_stderr,
-            "POOL DEBUG: CREATE  [%10lu/%10lu/%10lu] 0x%08X \"%s\" [%s:%u] parent: 0x%08X
\"%s\"\n",
+            "POOL DEBUG: CREATE  [%10lu/%10lu/%10lu] 0x%08X \"%s\" [%s] parent: 0x%08X \"%s\"\n",
             (unsigned long)0,
             (unsigned long)0,
             (unsigned long)apr_pool_num_bytes(global_pool, 1),
             (unsigned int)pool, pool->tag, 
-            file, line,
+            file_line,
             (unsigned int)parent, parent ? parent->tag : "<null>");
     }
 #endif
@@ -1190,7 +1187,7 @@
 
 APR_DECLARE(void) apr_pool_clear(apr_pool_t *pool)
 {
-    apr_pool_clear_debug(pool, "<undefined>", 0);
+    apr_pool_clear_debug(pool, "<undefined>");
 }
 
 #undef apr_pool_destroy
@@ -1198,7 +1195,7 @@
 
 APR_DECLARE(void) apr_pool_destroy(apr_pool_t *pool)
 {
-    apr_pool_destroy_debug(pool, "<undefined>", 0);
+    apr_pool_destroy_debug(pool, "<undefined>");
 }
 
 #undef apr_pool_create_ex
@@ -1214,7 +1211,7 @@
 {
     return apr_pool_create_ex_debug(newpool, parent, 
                                     abort_fn, flags,
-                                    "<undefined>", 0);
+                                    "<undefined>");
 }
 
 

Mime
View raw message