You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apreq-cvs@httpd.apache.org by jo...@apache.org on 2005/01/13 05:31:43 UTC
svn commit: r125035 - /httpd/apreq/trunk/t/parsers.c /httpd/apreq/trunk/t/testall.c
Author: joes
Date: Wed Jan 12 20:31:42 2005
New Revision: 125035
URL: http://svn.apache.org/viewcvs?view=rev&rev=125035
Log:
Created bucket allocators require explicit
destructor calls, otherwise they leak ~ 8K per instance.
This bug only impacts the cgi and test environments.
For detailed discussion see
http://marc.theaimsgroup.com/?t=110557054800001&r=1&w=2
Modified:
httpd/apreq/trunk/t/parsers.c
httpd/apreq/trunk/t/testall.c
Modified: httpd/apreq/trunk/t/parsers.c
Url: http://svn.apache.org/viewcvs/httpd/apreq/trunk/t/parsers.c?view=diff&rev=125035&p1=httpd/apreq/trunk/t/parsers.c&r1=125034&p2=httpd/apreq/trunk/t/parsers.c&r2=125035
==============================================================================
--- httpd/apreq/trunk/t/parsers.c (original)
+++ httpd/apreq/trunk/t/parsers.c Wed Jan 12 20:31:42 2005
@@ -176,6 +176,7 @@
{
apr_status_t rv;
apr_size_t i, j;
+ apr_bucket_alloc_t *ba;
for (j = 0; j <= strlen(form_data); ++j) {
const char *enctype;
@@ -189,7 +190,8 @@
enctype = apreq_enctype(req->env);
CuAssertStrEquals(tc, APREQ_MFD_ENCTYPE, enctype);
- bb = apr_brigade_create(p, apr_bucket_alloc_create(p));
+ ba = apr_bucket_alloc_create(p);
+ bb = apr_brigade_create(p, ba);
for (i = 0; i <= strlen(form_data); ++i) {
const char *val;
@@ -241,10 +243,11 @@
CuAssertStrEquals(tc, "text/plain", val);
apr_brigade_cleanup(bb);
}
-
+ apr_bucket_alloc_destroy(ba);
apr_pool_clear(p);
}
}
+
static void parse_disable_uploads(CuTest *tc)
{
const char *val;
Modified: httpd/apreq/trunk/t/testall.c
Url: http://svn.apache.org/viewcvs/httpd/apreq/trunk/t/testall.c?view=diff&rev=125035&p1=httpd/apreq/trunk/t/testall.c&r1=125034&p2=httpd/apreq/trunk/t/testall.c&r2=125035
==============================================================================
--- httpd/apreq/trunk/t/testall.c (original)
+++ httpd/apreq/trunk/t/testall.c Wed Jan 12 20:31:42 2005
@@ -66,9 +66,18 @@
return p;
}
+static apr_status_t bucket_alloc_cleanup(void *data)
+{
+ apr_bucket_alloc_t *ba = data;
+ apr_bucket_alloc_destroy(ba);
+ return APR_SUCCESS;
+}
+
static apr_bucket_alloc_t *test_bucket_alloc(void *env)
{
- return apr_bucket_alloc_create(p);
+ apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+ apr_pool_cleanup_register(p, ba, bucket_alloc_cleanup, NULL);
+ return ba;
}
static const char *test_header_in(void *env, const char *name)