On 06/01/2007 10:55 PM, Ruediger Pluem wrote:
> 
> On 06/01/2007 05:50 PM, [EMAIL PROTECTED] 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

Reply via email to