This is a patch to help debugging bucket operations. it adds a file/line to each bucket so that you can tell where it is created.
Index: include/http_protocol.h
===================================================================
RCS file: /home/cvs/httpd-2.0/include/http_protocol.h,v
retrieving revision 1.67
diff -u -r1.67 http_protocol.h
--- include/http_protocol.h 2001/12/02 23:13:32 1.67
+++ include/http_protocol.h 2001/12/14 06:58:46
@@ -652,8 +652,19 @@
* @return The new bucket, or NULL if allocation failed
* @deffunc apr_bucket *ap_bucket_error_create(int error, const char *buf, apr_pool_t *p)
*/
+
+#ifdef APR_DEBUG_BUCKET
+#define ap_bucket_error_create(error,buf,p) \
+ ap_bucket_error_create_debug(error,buf,p,__FILE__,__LINE__)
+
+AP_DECLARE(apr_bucket *) ap_bucket_error_create_debug(int error,
+ const char *buf, apr_pool_t *p,
+ const char*file,int line);
+#else
AP_DECLARE(apr_bucket *) ap_bucket_error_create(int error,
const char *buf, apr_pool_t *p);
+#endif
+
AP_DECLARE_NONSTD(apr_status_t) ap_byterange_filter(ap_filter_t *f, apr_bucket_brigade *b);
AP_DECLARE_NONSTD(apr_status_t) ap_http_header_filter(ap_filter_t *f, apr_bucket_brigade *b);
Index: server/error_bucket.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/error_bucket.c,v
retrieving revision 1.9
diff -u -r1.9 error_bucket.c
--- server/error_bucket.c 2001/09/22 22:37:04 1.9
+++ server/error_bucket.c 2001/12/14 06:59:01
@@ -87,8 +87,14 @@
return b;
}
+#ifdef APR_DEBUG_BUCKET
+AP_DECLARE(apr_bucket *) ap_bucket_error_create_debug(int error,
+ const char *buf, apr_pool_t *p,
+ const char *file, int line)
+#else
AP_DECLARE(apr_bucket *) ap_bucket_error_create(int error,
const char *buf, apr_pool_t *p)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_eos.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_eos.c,v
retrieving revision 1.30
diff -u -r1.30 apr_buckets_eos.c
--- srclib/apr-util/buckets/apr_buckets_eos.c 2001/09/22 22:36:07 1.30
+++ srclib/apr-util/buckets/apr_buckets_eos.c 2001/12/14 06:59:05
@@ -79,12 +79,17 @@
return b;
}+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_eos_create_debug(const char*file,int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_eos_create(void)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
APR_BUCKET_INIT(b);
b->free = free;
+
return apr_bucket_eos_make(b);
}Index: srclib/apr-util/buckets/apr_buckets_file.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_file.c,v
retrieving revision 1.63
diff -u -r1.63 apr_buckets_file.c
--- srclib/apr-util/buckets/apr_buckets_file.c 2001/12/02 00:28:11 1.63
+++ srclib/apr-util/buckets/apr_buckets_file.c 2001/12/14 06:59:06
@@ -205,9 +205,16 @@
return b;
}+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_file_create_debug(apr_file_t *fd,
+ apr_off_t offset,
+ apr_size_t len, apr_pool_t *p,
+ const char*file,int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_file_create(apr_file_t *fd,
- apr_off_t offset,
- apr_size_t len, apr_pool_t *p)
+ apr_off_t offset,
+ apr_size_t len, apr_pool_t *p)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_flush.c =================================================================== RCS file: /home/cvs/apr-util/buckets/apr_buckets_flush.c,v retrieving revision 1.22 diff -u -r1.22 apr_buckets_flush.c --- srclib/apr-util/buckets/apr_buckets_flush.c 2001/09/22 22:36:07 1.22 +++ srclib/apr-util/buckets/apr_buckets_flush.c 2001/12/14 06:59:06 @@ -78,8 +78,11 @@
return b;
}
-
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_flush_create_debug(const char*file,int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_flush_create(void)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_heap.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_heap.c,v
retrieving revision 1.39
diff -u -r1.39 apr_buckets_heap.c
--- srclib/apr-util/buckets/apr_buckets_heap.c 2001/11/12 03:22:25 1.39
+++ srclib/apr-util/buckets/apr_buckets_heap.c 2001/12/14 06:59:06
@@ -111,8 +111,14 @@
return b;
}+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_heap_create_debug(const char *buf,
+ apr_size_t length, int copy,
+ const char*file, int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_heap_create(const char *buf,
apr_size_t length, int copy)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_mmap.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_mmap.c,v
retrieving revision 1.46
diff -u -r1.46 apr_buckets_mmap.c
--- srclib/apr-util/buckets/apr_buckets_mmap.c 2001/11/29 21:14:25 1.46
+++ srclib/apr-util/buckets/apr_buckets_mmap.c 2001/12/14 06:59:07
@@ -108,10 +108,16 @@
return b;
}-
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_mmap_create_debug(apr_mmap_t *mm,
+ apr_off_t start,
+ apr_size_t length,
+ const char*file, int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_mmap_create(apr_mmap_t *mm,
apr_off_t start,
apr_size_t length)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_pipe.c =================================================================== RCS file: /home/cvs/apr-util/buckets/apr_buckets_pipe.c,v retrieving revision 1.43 diff -u -r1.43 apr_buckets_pipe.c --- srclib/apr-util/buckets/apr_buckets_pipe.c 2001/11/12 03:22:25 1.43 +++ srclib/apr-util/buckets/apr_buckets_pipe.c 2001/12/14 06:59:07 @@ -136,8 +136,13 @@
return b;
}
-
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_pipe_create_debug(apr_file_t *p,
+ const char*file,
+ int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_pipe_create(apr_file_t *p)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_pool.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_pool.c,v
retrieving revision 1.25
diff -u -r1.25 apr_buckets_pool.c
--- srclib/apr-util/buckets/apr_buckets_pool.c 2001/09/29 03:29:41 1.25
+++ srclib/apr-util/buckets/apr_buckets_pool.c 2001/12/14 06:59:09
@@ -159,8 +159,14 @@
return b;
}+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_pool_create_debug(
+ const char *buf, apr_size_t length, apr_pool_t *pool,
+ const char*file, int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_pool_create(
const char *buf, apr_size_t length, apr_pool_t *pool)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_simple.c =================================================================== RCS file: /home/cvs/apr-util/buckets/apr_buckets_simple.c,v retrieving revision 1.36 diff -u -r1.36 apr_buckets_simple.c --- srclib/apr-util/buckets/apr_buckets_simple.c 2001/11/12 03:22:25 1.36 +++ srclib/apr-util/buckets/apr_buckets_simple.c 2001/12/14 06:59:10 @@ -104,9 +104,14 @@
return b;
}
-
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_immortal_create_debug(
+ const char *buf, apr_size_t length,
+ const char *file, int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_immortal_create(
const char *buf, apr_size_t length)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
@@ -143,8 +148,14 @@
return b;
}+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_transient_create_debug(
+ const char *buf, apr_size_t length,
+ const char *file, int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_transient_create(
const char *buf, apr_size_t length)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_socket.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_socket.c,v
retrieving revision 1.34
diff -u -r1.34 apr_buckets_socket.c
--- srclib/apr-util/buckets/apr_buckets_socket.c 2001/11/12 03:22:25
1.34
+++ srclib/apr-util/buckets/apr_buckets_socket.c 2001/12/14 06:59:11
@@ -132,7 +132,13 @@
return b;
}+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_socket_create_debug(apr_socket_t *p,
+ const char* file,
+ int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_socket_create(apr_socket_t *p)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/include/apr_buckets.h =================================================================== RCS file: /home/cvs/apr-util/include/apr_buckets.h,v retrieving revision 1.121 diff -u -r1.121 apr_buckets.h --- srclib/apr-util/include/apr_buckets.h 2001/11/12 03:22:25 1.121 +++ srclib/apr-util/include/apr_buckets.h 2001/12/14 06:59:15 @@ -59,6 +59,7 @@ #ifndef APR_BUCKETS_H #define APR_BUCKETS_H
+#define APR_DEBUG_BUCKET 1
#include "apu.h"
#include "apr_network_io.h"
#include "apr_file_io.h"
@@ -242,6 +243,16 @@
* the value of this field will be (apr_size_t)(-1).
*/
apr_size_t length;
+#ifdef APR_DEBUG_BUCKET
+ /**
+ * the File where this bucket was created
+ */
+ const char*file;
+ /**
+ * the line number in the file
+ */
+ int line;
+#endif
/** The start of the data in the bucket relative to the private base
* pointer. The vast majority of bucket types allow a fixed block of
* data to be referenced by multiple buckets, each bucket pointing to
@@ -432,8 +443,11 @@
* Initialize a new bucket's prev/next pointers
* @param e The bucket to initialize
*/
+#ifdef APR_DEBUG_BUCKET
+#define APR_BUCKET_INIT(e) {APR_RING_ELEM_INIT((e), link);e->file=file;e->line=line;}
+#else
#define APR_BUCKET_INIT(e) APR_RING_ELEM_INIT((e), link)
-
+#endif
/**
* Determine if a bucket is a FLUSH bucket
* @param e The bucket to inspect
@@ -1061,7 +1075,13 @@
* coming from down the filter stack. All filters should flush at this point.
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_eos_create() apr_bucket_eos_create_debug(__FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_eos_create_debug(const char*file,int line);
+#else
APU_DECLARE(apr_bucket *) apr_bucket_eos_create(void);
+#endif
/**
* Make the bucket passed in an EOS bucket. This indicates that there is no
@@ -1078,7 +1098,13 @@
* best we can do.
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_flush_create() apr_bucket_flush_create_debug(__FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_flush_create_debug(const char*file,int line);
+#else
APU_DECLARE(apr_bucket *) apr_bucket_flush_create(void);
+#endif
/**
* Make the bucket passed in a FLUSH bucket. This indicates that filters
@@ -1095,8 +1121,19 @@
* @param nbyte The size of the data to insert.
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_immortal_create(buf,nbyte) \
+ apr_bucket_immortal_create_debug(buf,nbyte, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_immortal_create_debug(const char*buf,
+ apr_size_t nbyte,
+ const char*file,
+ int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_immortal_create(const char *buf,
apr_size_t nbyte);
+#endif
/**
* Make the bucket passed in a bucket refer to long-lived data
@@ -1115,8 +1152,20 @@
* @param nbyte The size of the data to insert.
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_transient_create(buf,nbyte) \
+ apr_bucket_transient_create_debug(buf,nbyte, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_transient_create_debug(const char*buf,
+ apr_size_t nbyte,
+ const char*file,
+ int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_transient_create(const char *buf,
- apr_size_t nbyte);
+ apr_size_t nbyte);
+#endif
+
/**
* Make the bucket passed in a bucket refer to stack data
@@ -1141,8 +1190,22 @@
* @param copy Whether to copy the data into newly-allocated memory or not
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_heap_create(buf,nbyte,copy) \
+ apr_bucket_heap_create_debug(buf,nbyte,copy, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_heap_create_debug(const char*buf,
+ apr_size_t nbyte,
+ int copy,
+ const char*file,
+ int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_heap_create(const char *buf,
- apr_size_t nbyte, int copy);
+ apr_size_t nbyte,
+ int copy);
+#endif
+
/**
* Make the bucket passed in a bucket refer to heap data
* @param b The bucket to make into a HEAP bucket
@@ -1162,9 +1225,22 @@
* @param pool The pool the memory was allocated from
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_pool_create(buf,length,pool) \
+ apr_bucket_pool_create_debug(buf,length,pool, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_pool_create_debug(const char*buf,
+ apr_size_t length,
+ apr_pool_t *pool,
+ const char*file,
+ int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_pool_create(const char *buf,
apr_size_t length,
- apr_pool_t *pool);
+ apr_pool_t *pool);
+#endif
+
/**
* Make the bucket passed in a bucket refer to pool data
@@ -1187,10 +1263,23 @@
* @param length The number of bytes referred to by this bucket
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_mmap_create(mm,start,length) \
+ apr_bucket_mmap_create_debug(mm,start,length, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_mmap_create_debug(apr_mmap_t *mm,
+ apr_off_t start,
+ apr_size_t length,
+ const char*file,
+ int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_mmap_create(apr_mmap_t *mm,
apr_off_t start,
apr_size_t length);
+#endif
+
/**
* Make the bucket passed in a bucket refer to an MMAP'ed file
* @param b The bucket to make into a MMAP bucket
@@ -1210,7 +1299,18 @@
* @param thissocket The socket to put in the bucket
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_socket_create(thissock) \
+ apr_bucket_socket_create_debug(thissock, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_socket_create_debug(apr_socket_t *thissock,
+ const char*file,
+ int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_socket_create(apr_socket_t *thissock);
+#endif
+
/**
* Make the bucket passed in a bucket refer to a socket
* @param b The bucket to make into a SOCKET bucket
@@ -1225,7 +1325,17 @@
* @param thispipe The pipe to put in the bucket
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_pipe_create(thispipe) \
+ apr_bucket_pipe_create_debug(thispipe, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_pipe_create_debug(apr_file_t *thispipe,
+ const char*file,
+ int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_pipe_create(apr_file_t *thispipe);
+#endif
/**
* Make the bucket passed in a bucket refer to a pipe
@@ -1245,11 +1355,23 @@
* while reading from this file bucket
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_file_create(fd,offset,len,p) \
+ apr_bucket_file_create_debug(fd,offset,len,p, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_file_create_debug(apr_file_t *fd,
+ apr_off_t offset,
+ apr_size_t len,
+ apr_pool_t *p,
+ const char*file,
+ int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_file_create(apr_file_t *fd,
apr_off_t offset,
apr_size_t len,
apr_pool_t *p);
-
+#endif
/**
* Make the bucket passed in a bucket refer to a file
* @param b The bucket to make into a FILE bucket
Index: include/http_protocol.h
===================================================================
RCS file: /home/cvs/httpd-2.0/include/http_protocol.h,v
retrieving revision 1.67
diff -u -r1.67 http_protocol.h
--- include/http_protocol.h 2001/12/02 23:13:32 1.67
+++ include/http_protocol.h 2001/12/14 06:58:46
@@ -652,8 +652,19 @@
* @return The new bucket, or NULL if allocation failed
* @deffunc apr_bucket *ap_bucket_error_create(int error, const char *buf,
apr_pool_t *p)
*/
+
+#ifdef APR_DEBUG_BUCKET
+#define ap_bucket_error_create(error,buf,p) \
+ ap_bucket_error_create_debug(error,buf,p,__FILE__,__LINE__)
+
+AP_DECLARE(apr_bucket *) ap_bucket_error_create_debug(int error,
+ const char *buf, apr_pool_t *p,
+ const char*file,int line);
+#else
AP_DECLARE(apr_bucket *) ap_bucket_error_create(int error,
const char *buf, apr_pool_t *p);
+#endif
+
AP_DECLARE_NONSTD(apr_status_t) ap_byterange_filter(ap_filter_t *f,
apr_bucket_brigade *b);
AP_DECLARE_NONSTD(apr_status_t) ap_http_header_filter(ap_filter_t *f,
apr_bucket_brigade *b);
Index: server/error_bucket.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/error_bucket.c,v
retrieving revision 1.9
diff -u -r1.9 error_bucket.c
--- server/error_bucket.c 2001/09/22 22:37:04 1.9
+++ server/error_bucket.c 2001/12/14 06:59:01
@@ -87,8 +87,14 @@
return b;
}
+#ifdef APR_DEBUG_BUCKET
+AP_DECLARE(apr_bucket *) ap_bucket_error_create_debug(int error,
+ const char *buf, apr_pool_t *p,
+ const char *file, int line)
+#else
AP_DECLARE(apr_bucket *) ap_bucket_error_create(int error,
const char *buf, apr_pool_t *p)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_eos.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_eos.c,v
retrieving revision 1.30
diff -u -r1.30 apr_buckets_eos.c
--- srclib/apr-util/buckets/apr_buckets_eos.c 2001/09/22 22:36:07 1.30
+++ srclib/apr-util/buckets/apr_buckets_eos.c 2001/12/14 06:59:05
@@ -79,12 +79,17 @@
return b;
}
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_eos_create_debug(const char*file,int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_eos_create(void)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
APR_BUCKET_INIT(b);
b->free = free;
+
return apr_bucket_eos_make(b);
}
Index: srclib/apr-util/buckets/apr_buckets_file.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_file.c,v
retrieving revision 1.63
diff -u -r1.63 apr_buckets_file.c
--- srclib/apr-util/buckets/apr_buckets_file.c 2001/12/02 00:28:11 1.63
+++ srclib/apr-util/buckets/apr_buckets_file.c 2001/12/14 06:59:06
@@ -205,9 +205,16 @@
return b;
}
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_file_create_debug(apr_file_t *fd,
+ apr_off_t offset,
+
apr_size_t len, apr_pool_t *p,
+
const char*file,int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_file_create(apr_file_t *fd,
- apr_off_t offset,
- apr_size_t len, apr_pool_t *p)
+ apr_off_t offset,
+
apr_size_t len, apr_pool_t *p)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_flush.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_flush.c,v
retrieving revision 1.22
diff -u -r1.22 apr_buckets_flush.c
--- srclib/apr-util/buckets/apr_buckets_flush.c 2001/09/22 22:36:07 1.22
+++ srclib/apr-util/buckets/apr_buckets_flush.c 2001/12/14 06:59:06
@@ -78,8 +78,11 @@
return b;
}
-
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_flush_create_debug(const char*file,int
line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_flush_create(void)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_heap.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_heap.c,v
retrieving revision 1.39
diff -u -r1.39 apr_buckets_heap.c
--- srclib/apr-util/buckets/apr_buckets_heap.c 2001/11/12 03:22:25 1.39
+++ srclib/apr-util/buckets/apr_buckets_heap.c 2001/12/14 06:59:06
@@ -111,8 +111,14 @@
return b;
}
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_heap_create_debug(const char *buf,
+ apr_size_t length, int copy,
+
const char*file, int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_heap_create(const char *buf,
apr_size_t length, int copy)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_mmap.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_mmap.c,v
retrieving revision 1.46
diff -u -r1.46 apr_buckets_mmap.c
--- srclib/apr-util/buckets/apr_buckets_mmap.c 2001/11/29 21:14:25 1.46
+++ srclib/apr-util/buckets/apr_buckets_mmap.c 2001/12/14 06:59:07
@@ -108,10 +108,16 @@
return b;
}
-
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_mmap_create_debug(apr_mmap_t *mm,
+ apr_off_t start,
+ apr_size_t length,
+
const char*file, int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_mmap_create(apr_mmap_t *mm,
apr_off_t start,
apr_size_t length)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_pipe.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_pipe.c,v
retrieving revision 1.43
diff -u -r1.43 apr_buckets_pipe.c
--- srclib/apr-util/buckets/apr_buckets_pipe.c 2001/11/12 03:22:25 1.43
+++ srclib/apr-util/buckets/apr_buckets_pipe.c 2001/12/14 06:59:07
@@ -136,8 +136,13 @@
return b;
}
-
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_pipe_create_debug(apr_file_t *p,
+
const char*file,
+
int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_pipe_create(apr_file_t *p)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_pool.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_pool.c,v
retrieving revision 1.25
diff -u -r1.25 apr_buckets_pool.c
--- srclib/apr-util/buckets/apr_buckets_pool.c 2001/09/29 03:29:41 1.25
+++ srclib/apr-util/buckets/apr_buckets_pool.c 2001/12/14 06:59:09
@@ -159,8 +159,14 @@
return b;
}
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_pool_create_debug(
+ const char *buf, apr_size_t length, apr_pool_t *pool,
+ const char*file, int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_pool_create(
const char *buf, apr_size_t length, apr_pool_t *pool)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_simple.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_simple.c,v
retrieving revision 1.36
diff -u -r1.36 apr_buckets_simple.c
--- srclib/apr-util/buckets/apr_buckets_simple.c 2001/11/12 03:22:25
1.36
+++ srclib/apr-util/buckets/apr_buckets_simple.c 2001/12/14 06:59:10
@@ -104,9 +104,14 @@
return b;
}
-
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_immortal_create_debug(
+ const char *buf, apr_size_t length,
+ const char *file, int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_immortal_create(
const char *buf, apr_size_t length)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
@@ -143,8 +148,14 @@
return b;
}
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_transient_create_debug(
+ const char *buf, apr_size_t length,
+ const char *file, int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_transient_create(
const char *buf, apr_size_t length)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/buckets/apr_buckets_socket.c
===================================================================
RCS file: /home/cvs/apr-util/buckets/apr_buckets_socket.c,v
retrieving revision 1.34
diff -u -r1.34 apr_buckets_socket.c
--- srclib/apr-util/buckets/apr_buckets_socket.c 2001/11/12 03:22:25
1.34
+++ srclib/apr-util/buckets/apr_buckets_socket.c 2001/12/14 06:59:11
@@ -132,7 +132,13 @@
return b;
}
+#ifdef APR_DEBUG_BUCKET
+APU_DECLARE(apr_bucket *) apr_bucket_socket_create_debug(apr_socket_t *p,
+
const char* file,
+
int line)
+#else
APU_DECLARE(apr_bucket *) apr_bucket_socket_create(apr_socket_t *p)
+#endif
{
apr_bucket *b = (apr_bucket *)malloc(sizeof(*b));
Index: srclib/apr-util/include/apr_buckets.h
===================================================================
RCS file: /home/cvs/apr-util/include/apr_buckets.h,v
retrieving revision 1.121
diff -u -r1.121 apr_buckets.h
--- srclib/apr-util/include/apr_buckets.h 2001/11/12 03:22:25 1.121
+++ srclib/apr-util/include/apr_buckets.h 2001/12/14 06:59:15
@@ -59,6 +59,7 @@
#ifndef APR_BUCKETS_H
#define APR_BUCKETS_H
+#define APR_DEBUG_BUCKET 1
#include "apu.h"
#include "apr_network_io.h"
#include "apr_file_io.h"
@@ -242,6 +243,16 @@
* the value of this field will be (apr_size_t)(-1).
*/
apr_size_t length;
+#ifdef APR_DEBUG_BUCKET
+ /**
+ * the File where this bucket was created
+ */
+ const char*file;
+ /**
+ * the line number in the file
+ */
+ int line;
+#endif
/** The start of the data in the bucket relative to the private base
* pointer. The vast majority of bucket types allow a fixed block of
* data to be referenced by multiple buckets, each bucket pointing to
@@ -432,8 +443,11 @@
* Initialize a new bucket's prev/next pointers
* @param e The bucket to initialize
*/
+#ifdef APR_DEBUG_BUCKET
+#define APR_BUCKET_INIT(e) {APR_RING_ELEM_INIT((e),
link);e->file=file;e->line=line;}
+#else
#define APR_BUCKET_INIT(e) APR_RING_ELEM_INIT((e), link)
-
+#endif
/**
* Determine if a bucket is a FLUSH bucket
* @param e The bucket to inspect
@@ -1061,7 +1075,13 @@
* coming from down the filter stack. All filters should flush at this point.
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_eos_create() apr_bucket_eos_create_debug(__FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_eos_create_debug(const char*file,int
line);
+#else
APU_DECLARE(apr_bucket *) apr_bucket_eos_create(void);
+#endif
/**
* Make the bucket passed in an EOS bucket. This indicates that there is no
@@ -1078,7 +1098,13 @@
* best we can do.
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_flush_create()
apr_bucket_flush_create_debug(__FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_flush_create_debug(const char*file,int
line);
+#else
APU_DECLARE(apr_bucket *) apr_bucket_flush_create(void);
+#endif
/**
* Make the bucket passed in a FLUSH bucket. This indicates that filters
@@ -1095,8 +1121,19 @@
* @param nbyte The size of the data to insert.
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_immortal_create(buf,nbyte) \
+ apr_bucket_immortal_create_debug(buf,nbyte, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_immortal_create_debug(const char*buf,
+
apr_size_t nbyte,
+
const char*file,
+
int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_immortal_create(const char *buf,
apr_size_t nbyte);
+#endif
/**
* Make the bucket passed in a bucket refer to long-lived data
@@ -1115,8 +1152,20 @@
* @param nbyte The size of the data to insert.
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_transient_create(buf,nbyte) \
+ apr_bucket_transient_create_debug(buf,nbyte, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_transient_create_debug(const char*buf,
+
apr_size_t nbyte,
+
const char*file,
+
int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_transient_create(const char *buf,
- apr_size_t nbyte);
+ apr_size_t nbyte);
+#endif
+
/**
* Make the bucket passed in a bucket refer to stack data
@@ -1141,8 +1190,22 @@
* @param copy Whether to copy the data into newly-allocated memory or not
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_heap_create(buf,nbyte,copy) \
+ apr_bucket_heap_create_debug(buf,nbyte,copy, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_heap_create_debug(const char*buf,
+
apr_size_t nbyte,
+
int copy,
+
const char*file,
+
int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_heap_create(const char *buf,
- apr_size_t nbyte, int copy);
+ apr_size_t nbyte,
+
int copy);
+#endif
+
/**
* Make the bucket passed in a bucket refer to heap data
* @param b The bucket to make into a HEAP bucket
@@ -1162,9 +1225,22 @@
* @param pool The pool the memory was allocated from
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_pool_create(buf,length,pool) \
+ apr_bucket_pool_create_debug(buf,length,pool, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_pool_create_debug(const char*buf,
+
apr_size_t length,
+
apr_pool_t *pool,
+
const char*file,
+
int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_pool_create(const char *buf,
apr_size_t length,
- apr_pool_t *pool);
+
apr_pool_t *pool);
+#endif
+
/**
* Make the bucket passed in a bucket refer to pool data
@@ -1187,10 +1263,23 @@
* @param length The number of bytes referred to by this bucket
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_mmap_create(mm,start,length) \
+ apr_bucket_mmap_create_debug(mm,start,length, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_mmap_create_debug(apr_mmap_t *mm,
+
apr_off_t start,
+
apr_size_t length,
+
const char*file,
+
int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_mmap_create(apr_mmap_t *mm,
apr_off_t start,
apr_size_t length);
+#endif
+
/**
* Make the bucket passed in a bucket refer to an MMAP'ed file
* @param b The bucket to make into a MMAP bucket
@@ -1210,7 +1299,18 @@
* @param thissocket The socket to put in the bucket
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_socket_create(thissock) \
+ apr_bucket_socket_create_debug(thissock, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_socket_create_debug(apr_socket_t
*thissock,
+
const char*file,
+
int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_socket_create(apr_socket_t *thissock);
+#endif
+
/**
* Make the bucket passed in a bucket refer to a socket
* @param b The bucket to make into a SOCKET bucket
@@ -1225,7 +1325,17 @@
* @param thispipe The pipe to put in the bucket
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_pipe_create(thispipe) \
+ apr_bucket_pipe_create_debug(thispipe, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_pipe_create_debug(apr_file_t *thispipe,
+
const char*file,
+
int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_pipe_create(apr_file_t *thispipe);
+#endif
/**
* Make the bucket passed in a bucket refer to a pipe
@@ -1245,11 +1355,23 @@
* while reading from this file bucket
* @return The new bucket, or NULL if allocation failed
*/
+#ifdef APR_DEBUG_BUCKET
+#define apr_bucket_file_create(fd,offset,len,p) \
+ apr_bucket_file_create_debug(fd,offset,len,p, __FILE__,__LINE__)
+
+APU_DECLARE(apr_bucket *) apr_bucket_file_create_debug(apr_file_t *fd,
+ apr_off_t offset,
+ apr_size_t len,
+ apr_pool_t *p,
+
const char*file,
+
int line);
+#else
+
APU_DECLARE(apr_bucket *) apr_bucket_file_create(apr_file_t *fd,
apr_off_t offset,
apr_size_t len,
apr_pool_t *p);
-
+#endif
/**
* Make the bucket passed in a bucket refer to a file
* @param b The bucket to make into a FILE bucket
