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