Hi,
Since we now have a similar pool debug mode in APR, we
can remove this code from Subversion. To turn
debug mode on, simple pass: --enable-pool-debug=verbose
to configure.
Note: configure doesn't send --enable-pool-debug nicely
to apr/configure. Need to figure out why not. If someone
would look into that, that would be great.
Sander
Log:
* subversion/include/svn_pools.h
Remove the comments about how to turn on debugging and
what the output format looks like.
(svn_pool_create_debug, svn_pool_clear_debug,
svn_pool_destroy_debug): change arguments from seperate
file, line, to a single string. Pass APR_POOL__FILE_LINE__
which is a single string containing __FILE__:__LINE__.
* subversion/libsvn_subr/svn_error.c
(svn_pool_create_debug, svn_pool_clear_debug,
svn_pool_destroy_debug): change arguments from seperate
file, line, to a single string. Call on the
apr_pool_xxx_debug counterpart to get the debug
functionality with the correct file:line in the output.
Index: ./include/svn_pools.h
===================================================================
--- ./include/svn_pools.h
+++ ./include/svn_pools.h Fri Jan 25 02:57:26 2002
@@ -39,31 +39,6 @@
/*** Wrappers around APR pools, so we get error pools. ***/
-/* If you want pool usage debug info dumped to stderr (in environments
- * that support that kind of thing), #define SVN_POOL_DEBUG here.
- *
- * Output looks like one of these three:
- *
- * PDEBUG: + 0xHHHHHHHH (FILE:LINE) parent=0xPPPPPPPP
- * PDEBUG: 0 SSSSSSSSSS TTTTTTTTTT 0xHHHHHHHH (FILE:LINE)
- * PDEBUG: - SSSSSSSSSS TTTTTTTTTT 0xHHHHHHHH (FILE:LINE)
- *
- * where:
- *
- * '+' signifies the creation of a pool
- * '0' signifies the clearing of a pool
- * '-' signifies the destruction of a pool
- * SSSSSSSSSS is the decimal size in bytes of the pool
- * TTTTTTTTTT is the total allocation of that pool tree at the time
- * 0xHHHHHHHH is the address of the pool
- * 0xPPPPPPPP is the address of the pool's parent pool
- * FILE and LINE are the source code path/line number
- */
-/*
-#define SVN_POOL_DEBUG
-*/
-
-
/* THE ERROR POOL
*
@@ -164,7 +139,7 @@
#endif /* SWIG */
-#ifndef SVN_POOL_DEBUG
+#if !APR_POOL_DEBUG
/* Return a new pool. If PARENT_POOL is non-null, then the new
* pool will be a subpool of it, and will inherit the containing
* pool's dedicated error subpool and feedback stream.
@@ -179,16 +154,15 @@
* terminating the program. */
apr_pool_t *svn_pool_create (apr_pool_t *parent_pool);
-#else /* SVN_POOL_DEBUG */
+#else /* APR_POOL_DEBUG */
apr_pool_t *svn_pool_create_debug (apr_pool_t *parent_pool,
- const char *file,
- int line);
-#define svn_pool_create(p) svn_pool_create_debug(p, __FILE__, __LINE__)
-#endif /* SVN_POOL_DEBUG */
+ const char *file_line);
+#define svn_pool_create(p) svn_pool_create_debug(p, APR_POOL__FILE_LINE__)
+#endif /* APR_POOL_DEBUG */
-#ifndef SVN_POOL_DEBUG
+#if !APR_POOL_DEBUG
/* Clear the passed in pool.
*
* The reason we need this wrapper to apr_pool_clear, is because
@@ -199,15 +173,14 @@
* If anything goes wrong, an abort function will be called. */
void svn_pool_clear (apr_pool_t *p);
-#else /* SVN_POOL_DEBUG */
+#else /* APR_POOL_DEBUG */
void svn_pool_clear_debug (apr_pool_t *p,
- const char *file,
- int line);
-#define svn_pool_clear(p) svn_pool_clear_debug(p, __FILE__, __LINE__)
-#endif /* SVN_POOL_DEBUG */
+ const char *file_line);
+#define svn_pool_clear(p) svn_pool_clear_debug(p, __FILE_LINE__)
+#endif /* APR_POOL_DEBUG */
-#ifndef SVN_POOL_DEBUG
+#if !APR_POOL_DEBUG
/* Destroy a POOL and all of its children.
*
@@ -217,12 +190,11 @@
*/
void svn_pool_destroy (apr_pool_t *p);
-#else /* SVN_POOL_DEBUG */
+#else /* APR_POOL_DEBUG */
void svn_pool_destroy_debug (apr_pool_t *p,
- const char *file,
- int line);
-#define svn_pool_destroy(p) svn_pool_destroy_debug(p, __FILE__, __LINE__)
-#endif /* SVN_POOL_DEBUG */
+ const char *file_line);
+#define svn_pool_destroy(p) svn_pool_destroy_debug(p, APR_POOL__FILE_LINE__)
+#endif /* APR_POOL_DEBUG */
#ifdef __cplusplus
Index: ./libsvn_subr/svn_error.c
===================================================================
--- ./libsvn_subr/svn_error.c
+++ ./libsvn_subr/svn_error.c Fri Jan 25 02:49:57 2002
@@ -287,40 +287,24 @@
}
-#ifdef SVN_POOL_DEBUG
-/* Find the oldest living ancestor of pool P (which could very well be
- P itself) */
-static apr_pool_t *
-find_oldest_pool_ancestor (apr_pool_t *p)
-{
- while (1)
- {
- apr_pool_t *parent = apr_pool_get_parent (p);
-
- if (parent == NULL) /* too far? */
- return p;
- p = parent;
- }
- /* NOTREACHED */
-}
-#endif /* SVN_POOL_DEBUG */
-
-
-
-#ifndef SVN_POOL_DEBUG
+#if !APR_POOL_DEBUG
apr_pool_t *
svn_pool_create (apr_pool_t *parent_pool)
-#else /* SVN_POOL_DEBUG */
+#else /* APR_POOL_DEBUG */
apr_pool_t *
svn_pool_create_debug (apr_pool_t *parent_pool,
- const char *file,
- int line)
-#endif /* SVN_POOL_DEBUG */
+ const char *file_line)
+#endif /* APR_POOL_DEBUG */
{
apr_pool_t *ret_pool;
+#if !APR_POOL_DEBUG
apr_pool_create_ex (&ret_pool, parent_pool, abort_on_pool_failure,
APR_POOL_FDEFAULT);
+#else /* APR_POOL_DEBUG */
+ apr_pool_create_ex_debug (&ret_pool, parent_pool, abort_on_pool_failure,
+ APR_POOL_FDEFAULT, file_line);
+#endif /* APR_POOL_DEBUG */
/* If there is no parent, then initialize ret_pool as the "top". */
if (parent_pool == NULL)
@@ -350,46 +334,23 @@
abort_on_pool_failure (SVN_ERR_BAD_CONTAINING_POOL);
}
-#ifdef SVN_POOL_DEBUG
- {
- fprintf (stderr,
- "PDEBUG: + "
- " " /* 10/10 here */
- " 0x%08X (%s:%d) parent=0x%08X\n",
- (unsigned int)ret_pool, file, line, (unsigned int)parent_pool);
- }
-#endif /* SVN_POOL_DEBUG */
-
return ret_pool;
}
-#ifndef SVN_POOL_DEBUG
+#if !APR_POOL_DEBUG
void
svn_pool_clear (apr_pool_t *p)
-#else /* SVN_POOL_DEBUG */
+#else /* APR_POOL_DEBUG */
void
svn_pool_clear_debug (apr_pool_t *p,
- const char *file,
- int line)
-#endif /* SVN_POOL_DEBUG */
+ const char *file_line)
+#endif /* APR_POOL_DEBUG */
{
apr_pool_t *error_pool;
svn_pool_feedback_t *vtable, vtable_tmp;
svn_boolean_t subpool_of_p_p; /* That's "predicate" to you, bud. */
-#ifdef SVN_POOL_DEBUG
- {
- apr_size_t num_bytes = apr_pool_num_bytes (p, 1);
- apr_size_t global_num_bytes =
- apr_pool_num_bytes (find_oldest_pool_ancestor (p), 1);
-
- fprintf (stderr, "PDEBUG: 0 %10lu %10lu 0x%08X (%s:%d)\n",
- (unsigned long)num_bytes, (unsigned long)global_num_bytes,
- (unsigned int)p, file, line);
- }
-#endif /* SVN_POOL_DEBUG */
-
/* Get the error_pool from this pool. If it's rooted in this pool, we'll
need to re-create it after we clear the pool. */
svn_error__get_error_pool (p, &error_pool, &subpool_of_p_p);
@@ -419,7 +380,11 @@
}
/* Clear the pool. All userdata of this pool is now invalid. */
+#if !APR_POOL_DEBUG
apr_pool_clear (p);
+#else /* APR_POOL_DEBUG */
+ apr_pool_clear_debug (p, file_line);
+#endif /* APR_POOL_DEBUG */
if (subpool_of_p_p)
{
@@ -439,29 +404,20 @@
}
-#ifndef SVN_POOL_DEBUG
+#if !APR_POOL_DEBUG
void
svn_pool_destroy (apr_pool_t *p)
-#else /* SVN_POOL_DEBUG */
+#else /* APR_POOL_DEBUG */
void
svn_pool_destroy_debug (apr_pool_t *p,
- const char *file,
- int line)
-#endif /* SVN_POOL_DEBUG */
+ const char *file_line)
+#endif /* APR_POOL_DEBUG */
{
-#ifdef SVN_POOL_DEBUG
- {
- apr_size_t num_bytes = apr_pool_num_bytes (p, 1);
- apr_size_t global_num_bytes =
- apr_pool_num_bytes (find_oldest_pool_ancestor (p), 1);
-
- fprintf (stderr, "PDEBUG: - %10lu %10lu 0x%08X (%s:%d)\n",
- (unsigned long)num_bytes, (unsigned long)global_num_bytes,
- (unsigned int)p, file, line);
- }
-#endif /* SVN_POOL_DEBUG */
-
+#if !APR_POOL_DEBUG
apr_pool_destroy (p);
+#else /* APR_POOL_DEBUG */
+ apr_pool_destroy_debug (p, file_line);
+#endif /* APR_POOL_DEBUG */
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:59 2006