Bojan Smojver wrote:
> On Mon, 2012-01-16 at 14:11 +0100, Ruediger Pluem wrote:
>> r1231605 and r1231858 cause massive regressions and test case failures
>> in httpd. Not sure why right now.
> 
> Could you please run your tests with this patch. Let me know how it
> goes. Thanks.
> 


I think there is still a problem with your patch:

@@ -468,6 +484,12 @@

     for (k = 0; k <= overlay->max; k++) {
         for (iter = overlay->array[k]; iter; iter = iter->next) {
+            if (res->hash_func)
+                iter->hash = res->hash_func(iter->key, &iter->klen);
+            else
+                iter->hash = apr_hashfunc_default_internal(iter->key,
+                                                           &iter->klen,
+                                                           res->seed);

Shouldn't you store the result of res->hash_func / 
apr_hashfunc_default_internal in a local temporary
variable and use it later on? Otherwise you change the overlay hash and may 
make it unusable by setting a new hash
value. IMHO all operations by this code are currently readonly on the base and 
overlay hash.

             i = iter->hash & res->max;
             for (ent = res->array[i]; ent; ent = ent->next) {
                 if ((ent->klen == iter->klen) &&

Regards

RĂ¼diger

Reply via email to