httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ruediger Pluem <rpl...@apache.org>
Subject Re: svn commit: r543515 - in /httpd/httpd/trunk: CHANGES modules/cache/mod_mem_cache.c
Date Fri, 01 Jun 2007 21:01:51 GMT


On 06/01/2007 10:55 PM, Ruediger Pluem wrote:
> 
> On 06/01/2007 05:50 PM, covener@apache.org wrote:
> 

>>+
>> static apr_status_t recall_headers(cache_handle_t *h, request_rec *r)
>> {
>>     mem_cache_object_t *mobj = (mem_cache_object_t*) h->cache_obj->vobj;
>> 
>>-    h->req_hdrs = apr_table_copy(r->pool, mobj->req_hdrs);
>>-    h->resp_hdrs = apr_table_copy(r->pool, mobj->header_out);
>>+    h->req_hdrs = deep_table_copy(r->pool, mobj->req_hdrs);
>>+    h->resp_hdrs = deep_table_copy(r->pool, mobj->header_out);
> 
> 
> Just curious: Why is this needed? The live time of the mobj->pool pool should be longer
> then that of the r->pool pool (which should be ensured by the refcount stuff, which
would
> be broken otherwise).
> Of course not doing a deep_table_copy can cause trouble afterwards with APR_POOL_DEBUG
> set as mobj->pool does not seem to be an ancestor of r->pool. Is this the reason
> for this copy operation?

Ahh. Should have read http://issues.apache.org/bugzilla/show_bug.cgi?id=41551#c2 before which
answers my question :-).
Anyway another question: From a first glance your original patch and this patch basicly seem
to do the same thing. But the original patch was said to be non working by the reporter whereas
this worked. Any idea why?


Regards

RĂ¼diger


Mime
View raw message