Author: rhuijben
Date: Fri Mar 6 11:18:29 2015
New Revision: 1664588
URL: http://svn.apache.org/r1664588
Log:
Avoid two loops over one hashtable and an assertion/abort() in apr when
pool debugging is enabled (because the iterpool is not a subpool of
both original pools)
* subversion/libsvn_subr/auth.c
(svn_auth_first_credentials): Just make a copy of the original hash and
overwrite with slave parameters.
Modified:
subversion/trunk/subversion/libsvn_subr/auth.c
Modified: subversion/trunk/subversion/libsvn_subr/auth.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/auth.c?rev=1664588&r1=1664587&r2=1664588&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/auth.c (original)
+++ subversion/trunk/subversion/libsvn_subr/auth.c Fri Mar 6 11:18:29 2015
@@ -256,15 +256,18 @@ svn_auth_first_credentials(void **creden
if (auth_baton->slave_parameters)
{
apr_hash_index_t *hi;
- parameters = apr_hash_overlay(pool, auth_baton->slave_parameters,
- auth_baton->parameters);
+ parameters = apr_hash_copy(pool, auth_baton->parameters);
for (hi = apr_hash_first(pool, auth_baton->slave_parameters);
hi;
hi = apr_hash_next(hi))
{
- if (apr_hash_this_val(hi) == &auth_NULL)
- svn_hash_sets(parameters, apr_hash_this_key(hi), NULL);
+ const void *value = apr_hash_this_val(hi);
+
+ if (value == &auth_NULL)
+ value = NULL;
+
+ svn_hash_sets(parameters, apr_hash_this_key(hi), value);
}
}
else