[prev in list] [next in list] [prev in thread] [next in thread] 

List:       subversion-commits
Subject:    svn commit: r1614851 [3/5] - in /subversion/branches/remove-log-addressing: ./ build/ subversion/bin
From:       ivan () apache ! org
Date:       2014-07-31 10:44:21
Message-ID: 20140731104429.039F92389111 () eris ! apache ! org
[Download RAW message or body]

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra/compat.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra/compat.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra/compat.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra/compat.c Thu Jul \
31 10:44:15 2014 @@ -922,9 +922,9 @@ svn_ra__get_inherited_props_walk(svn_ra_
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *name = svn__apr_hash_index_key(hi);
-          apr_ssize_t klen = svn__apr_hash_index_klen(hi);
-          svn_string_t *value = svn__apr_hash_index_val(hi);
+          const char *name = apr_hash_this_key(hi);
+          apr_ssize_t klen = apr_hash_this_key_len(hi);
+          svn_string_t *value = apr_hash_this_val(hi);
 
           if (svn_property_kind2(name) == svn_prop_regular_kind)
             {

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra/ra_loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra/ra_loader.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra/ra_loader.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra/ra_loader.c Thu \
Jul 31 10:44:15 2014 @@ -264,7 +264,7 @@ svn_error_t *svn_ra_open4(svn_ra_session
   const struct ra_lib_defn *defn;
   const svn_ra__vtable_t *vtable = NULL;
   svn_config_t *servers = NULL;
-  const char *server_group;
+  const char *server_group = NULL;
   apr_uri_t repos_URI;
   apr_status_t apr_err;
   svn_error_t *err;
@@ -428,6 +428,10 @@ svn_error_t *svn_ra_open4(svn_ra_session
       if (! store_auth_creds)
         svn_auth_set_parameter(callbacks->auth_baton,
                                SVN_AUTH_PARAM_NO_AUTH_CACHE, "");
+
+      if (server_group)
+        svn_auth_set_parameter(callbacks->auth_baton,
+                               SVN_AUTH_PARAM_SERVER_GROUP, server_group);
     }
 
   /* Find the library. */
@@ -1204,7 +1208,7 @@ svn_error_t *svn_ra_lock(svn_ra_session_
 
   for (hi = apr_hash_first(pool, path_revs); hi; hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
+      const char *path = apr_hash_this_key(hi);
 
       SVN_ERR_ASSERT(svn_relpath_is_canonical(path));
     }
@@ -1229,7 +1233,7 @@ svn_error_t *svn_ra_unlock(svn_ra_sessio
 
   for (hi = apr_hash_first(pool, path_tokens); hi; hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
+      const char *path = apr_hash_this_key(hi);
 
       SVN_ERR_ASSERT(svn_relpath_is_canonical(path));
     }

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_local/ra_plugin.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_local/ra_plugin.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_local/ra_plugin.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_local/ra_plugin.c \
Thu Jul 31 10:44:15 2014 @@ -416,8 +416,8 @@ deltify_etc(const svn_commit_info_t *com
       for (hi = apr_hash_first(subpool, deb->lock_tokens); hi;
            hi = apr_hash_next(hi))
         {
-          const void *relpath = svn__apr_hash_index_key(hi);
-          const char *token = svn__apr_hash_index_val(hi);
+          const void *relpath = apr_hash_this_key(hi);
+          const char *token = apr_hash_this_val(hi);
           const char *fspath;
 
           fspath = svn_fspath__join(deb->fspath_base, relpath, subpool);
@@ -475,8 +475,8 @@ apply_lock_tokens(svn_fs_t *fs,
           for (hi = apr_hash_first(scratch_pool, lock_tokens); hi;
                hi = apr_hash_next(hi))
             {
-              const void *relpath = svn__apr_hash_index_key(hi);
-              const char *token = svn__apr_hash_index_val(hi);
+              const void *relpath = apr_hash_this_key(hi);
+              const char *token = apr_hash_this_val(hi);
               const char *fspath;
 
               /* The path needs to live as long as ACCESS_CTX.  */
@@ -1424,9 +1424,8 @@ svn_ra_local__lock(svn_ra_session_t *ses
   for (hi = apr_hash_first(pool, path_revs); hi; hi = apr_hash_next(hi))
     {
       const char *abs_path = svn_fspath__join(sess->fs_path->data,
-                                              svn__apr_hash_index_key(hi),
-                                              pool);
-      svn_revnum_t current_rev = *(svn_revnum_t *)svn__apr_hash_index_val(hi);
+                                              apr_hash_this_key(hi), pool);
+      svn_revnum_t current_rev = *(svn_revnum_t *)apr_hash_this_val(hi);
       svn_fs_lock_target_t *target = svn_fs_lock_target_create(NULL,
                                                                current_rev,
                                                                pool);
@@ -1475,9 +1474,8 @@ svn_ra_local__unlock(svn_ra_session_t *s
   for (hi = apr_hash_first(pool, path_tokens); hi; hi = apr_hash_next(hi))
     {
       const char *abs_path = svn_fspath__join(sess->fs_path->data,
-                                              svn__apr_hash_index_key(hi),
-                                              pool);
-      const char *token = svn__apr_hash_index_val(hi);
+                                              apr_hash_this_key(hi), pool);
+      const char *token = apr_hash_this_val(hi);
 
       svn_hash_sets(targets, abs_path, token);
     }

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/commit.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/commit.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/commit.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/commit.c Thu \
Jul 31 10:44:15 2014 @@ -1057,7 +1057,7 @@ setup_if_header_recursive(svn_boolean_t 
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *relpath = svn__apr_hash_index_key(hi);
+      const char *relpath = apr_hash_this_key(hi);
       apr_uri_t uri;
 
       if (!svn_relpath_skip_ancestor(rq_relpath, relpath))
@@ -1087,7 +1087,7 @@ setup_if_header_recursive(svn_boolean_t 
       svn_stringbuf_appendbyte(sb, '<');
       svn_stringbuf_appendcstr(sb, apr_uri_unparse(iterpool, &uri, 0));
       svn_stringbuf_appendcstr(sb, "> (<");
-      svn_stringbuf_appendcstr(sb, svn__apr_hash_index_val(hi));
+      svn_stringbuf_appendcstr(sb, apr_hash_this_val(hi));
       svn_stringbuf_appendcstr(sb, ">)");
     }
 
@@ -1465,8 +1465,8 @@ open_root(void *edit_baton,
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *name = svn__apr_hash_index_key(hi);
-          svn_string_t *value = svn__apr_hash_index_val(hi);
+          const char *name = apr_hash_this_key(hi);
+          svn_string_t *value = apr_hash_this_val(hi);
           const char *ns;
 
           if (strncmp(name, SVN_PROP_PREFIX, sizeof(SVN_PROP_PREFIX) - 1) == 0)

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/inherited_props.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/inherited_props.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/inherited_props.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/inherited_props.c \
Thu Jul 31 10:44:15 2014 @@ -240,7 +240,7 @@ keep_only_regular_props(apr_hash_t *prop
 
   for (hi = apr_hash_first(scratch_pool, props); hi; hi = apr_hash_next(hi))
     {
-      const char *propname = svn__apr_hash_index_key(hi);
+      const char *propname = apr_hash_this_key(hi);
 
       if (svn_property_kind2(propname) != svn_prop_regular_kind)
         svn_hash_sets(props, propname, NULL);

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/lock.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/lock.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/lock.c Thu \
Jul 31 10:44:15 2014 @@ -455,8 +455,8 @@ svn_ra_serf__lock(svn_ra_session_t *ra_s
       lock_ctx = apr_pcalloc(scratch_pool, sizeof(*lock_ctx));
 
       lock_ctx->pool = lock_pool;
-      lock_ctx->path = svn__apr_hash_index_key(hi);
-      lock_ctx->revision = *((svn_revnum_t*)svn__apr_hash_index_val(hi));
+      lock_ctx->path = apr_hash_this_key(hi);
+      lock_ctx->revision = *((svn_revnum_t*)apr_hash_this_val(hi));
       lock_ctx->lock = svn_lock_create(lock_pool);
       lock_ctx->lock->path = lock_ctx->path;
       lock_ctx->lock->comment = comment;
@@ -564,8 +564,8 @@ svn_ra_serf__unlock(svn_ra_session_t *ra
 
           svn_pool_clear(iterpool);
 
-          path = svn__apr_hash_index_key(hi);
-          token = svn__apr_hash_index_val(hi);
+          path = apr_hash_this_key(hi);
+          token = apr_hash_this_val(hi);
 
           if (token && token[0])
             continue;
@@ -625,8 +625,8 @@ svn_ra_serf__unlock(svn_ra_session_t *ra
 
       lock_ctx->pool = lock_pool;
 
-      lock_ctx->path = svn__apr_hash_index_key(hi);
-      token = svn__apr_hash_index_val(hi);
+      lock_ctx->path = apr_hash_this_key(hi);
+      token = apr_hash_this_val(hi);
 
       lock_ctx->force = force;
       lock_ctx->token = apr_pstrcat(lock_pool, "<", token, ">", SVN_VA_NULL);

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/serf.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/serf.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/serf.c Thu \
Jul 31 10:44:15 2014 @@ -255,12 +255,8 @@ load_config(svn_ra_serf__session_t *sess
                                SERF_LOG_INFO));
 #endif
 
-  if (config)
-    server_group = svn_config_find_group(config,
-                                         session->session_url.hostname,
-                                         SVN_CONFIG_SECTION_GROUPS, pool);
-  else
-    server_group = NULL;
+  server_group = svn_auth_get_parameter(session->wc_callbacks->auth_baton,
+                                        SVN_AUTH_PARAM_SERVER_GROUP);
 
   if (server_group)
     {
@@ -271,9 +267,6 @@ load_config(svn_ra_serf__session_t *sess
       svn_config_get(config, &timeout_str, server_group,
                      SVN_CONFIG_OPTION_HTTP_TIMEOUT, timeout_str);
 
-      svn_auth_set_parameter(session->wc_callbacks->auth_baton,
-                             SVN_AUTH_PARAM_SERVER_GROUP, server_group);
-
       /* Load the group proxy server settings, overriding global
          settings.  We intentionally ignore 'http-proxy-exceptions'
          here because, well, if this site was an exception, why is

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/update.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/update.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/update.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/update.c Thu \
Jul 31 10:44:15 2014 @@ -118,11 +118,11 @@ static const svn_ra_serf__xml_transition
     FALSE, { "rev", "name", NULL }, TRUE },
 
   { OPEN_DIR, S_, "add-directory", ADD_DIR,
-    FALSE, { "name", "?rev", "?copyfrom-path", "?copyfrom-rev", /*"?bc-url",*/
+    FALSE, { "name", "?copyfrom-path", "?copyfrom-rev", /*"?bc-url",*/
               NULL }, TRUE },
 
   { ADD_DIR, S_, "add-directory", ADD_DIR,
-    FALSE, { "name", "?rev", "?copyfrom-path", "?copyfrom-rev", /*"?bc-url",*/
+    FALSE, { "name", "?copyfrom-path", "?copyfrom-rev", /*"?bc-url",*/
               NULL }, TRUE },
 
   { OPEN_DIR, S_, "open-file", OPEN_FILE,
@@ -132,12 +132,12 @@ static const svn_ra_serf__xml_transition
     FALSE, { "rev", "name", NULL }, TRUE },
 
   { OPEN_DIR, S_, "add-file", ADD_FILE,
-    FALSE, { "name", "?rev", "?copyfrom-path", "?copyfrom-rev",
-             "?sha1-checksum", /*"?bc-url",*/ NULL }, TRUE },
+    FALSE, { "name", "?copyfrom-path", "?copyfrom-rev",
+             "?sha1-checksum", NULL }, TRUE },
 
   { ADD_DIR, S_, "add-file", ADD_FILE,
-    FALSE, { "name", "?rev", "?copyfrom-path", "?copyfrom-rev",
-             "?sha1-checksum", /*"?bc-url",*/ NULL }, TRUE },
+    FALSE, { "name", "?copyfrom-path", "?copyfrom-rev",
+             "?sha1-checksum", NULL }, TRUE },
 
   { OPEN_DIR, S_, "delete-entry", DELETE_ENTRY,
     FALSE, { "?rev", "name", NULL }, TRUE },
@@ -849,7 +849,7 @@ maybe_close_dir(dir_baton_t *dir)
            hi = apr_hash_next(hi))
         {
           SVN_ERR(ctx->editor->change_file_prop(dir->dir_baton,
-                                                svn__apr_hash_index_key(hi),
+                                                apr_hash_this_key(hi),
                                                 NULL /* value */,
                                                 scratch_pool));
         }
@@ -1013,7 +1013,7 @@ close_file(file_baton_t *file,
            hi = apr_hash_next(hi))
         {
           SVN_ERR(ctx->editor->change_file_prop(file->file_baton,
-                                                svn__apr_hash_index_key(hi),
+                                                apr_hash_this_key(hi),
                                                 NULL /* value */,
                                                 scratch_pool));
         }

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_svn/client.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_svn/client.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_svn/client.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_svn/client.c Thu \
Jul 31 10:44:15 2014 @@ -1235,8 +1235,8 @@ parse_iproplist(apr_array_header_t **inh
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *name = svn__apr_hash_index_key(hi);
-          svn_string_t *value = svn__apr_hash_index_val(hi);
+          const char *name = apr_hash_this_key(hi);
+          svn_string_t *value = apr_hash_this_val(hi);
           svn_hash_sets(new_iprop->prop_hash,
                         apr_pstrdup(result_pool, name),
                         svn_string_dup(value, result_pool));

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/authz_pool.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/authz_pool.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/authz_pool.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/authz_pool.c \
Thu Jul 31 10:44:15 2014 @@ -34,8 +34,7 @@
 #include "private/svn_subr_private.h"
 #include "private/svn_repos_private.h"
 #include "private/svn_string_private.h"
-
-#include "../libsvn_subr/config_impl.h"
+#include "private/svn_subr_private.h"
 
 #include "repos.h"
 

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/delta.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/delta.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/delta.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/delta.c Thu Jul \
31 10:44:15 2014 @@ -875,9 +875,9 @@ delta_dirs(struct context *c,
      from the target tree. */
   for (hi = apr_hash_first(pool, t_entries); hi; hi = apr_hash_next(hi))
     {
-      const void *key = svn__apr_hash_index_key(hi);
-      apr_ssize_t klen = svn__apr_hash_index_klen(hi);
-      const svn_fs_dirent_t *t_entry = svn__apr_hash_index_val(hi);
+      const void *key = apr_hash_this_key(hi);
+      apr_ssize_t klen = apr_hash_this_key_len(hi);
+      const svn_fs_dirent_t *t_entry = apr_hash_this_val(hi);
       const svn_fs_dirent_t *s_entry;
       const char *t_fullpath;
       const char *e_fullpath;
@@ -961,7 +961,7 @@ delta_dirs(struct context *c,
     {
       for (hi = apr_hash_first(pool, s_entries); hi; hi = apr_hash_next(hi))
         {
-          const svn_fs_dirent_t *s_entry = svn__apr_hash_index_val(hi);
+          const svn_fs_dirent_t *s_entry = apr_hash_this_val(hi);
           const char *e_fullpath;
           svn_node_kind_t src_kind;
 

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/fs-wrap.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/fs-wrap.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/fs-wrap.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/fs-wrap.c Thu \
Jul 31 10:44:15 2014 @@ -74,7 +74,7 @@ svn_repos_fs_commit_txn(const char **con
   iterpool = svn_pool_create(pool);
   for (hi = apr_hash_first(pool, props); hi; hi = apr_hash_next(hi))
     {
-      const char *key = svn__apr_hash_index_key(hi);
+      const char *key = apr_hash_this_key(hi);
 
       svn_pool_clear(iterpool);
 
@@ -94,8 +94,8 @@ svn_repos_fs_commit_txn(const char **con
       iterpool = svn_pool_create(pool);
       for (hi = apr_hash_first(pool, props); hi; hi = apr_hash_next(hi))
         {
-          const char *key = svn__apr_hash_index_key(hi);
-          svn_string_t *val = svn__apr_hash_index_val(hi);
+          const char *key = apr_hash_this_key(hi);
+          svn_string_t *val = apr_hash_this_val(hi);
 
           svn_pool_clear(iterpool);
 
@@ -581,7 +581,7 @@ svn_repos_fs_lock_many(svn_repos_t *repo
     {
       const char *new_token;
       svn_fs_lock_target_t *target;
-      const char *path = svn__apr_hash_index_key(hi);
+      const char *path = apr_hash_this_key(hi);
 
       svn_pool_clear(iterpool);
 
@@ -596,7 +596,7 @@ svn_repos_fs_lock_many(svn_repos_t *repo
           continue;
         }
 
-      target = svn__apr_hash_index_val(hi);
+      target = apr_hash_this_val(hi);
       if (*new_token)
         svn_fs_lock_target_set_token(target, new_token);
       svn_hash_sets(pre_targets, path, target);
@@ -738,8 +738,8 @@ svn_repos_fs_unlock_many(svn_repos_t *re
      svn_fs_unlock_many() from happening for that path. */
   for (hi = apr_hash_first(scratch_pool, targets); hi; hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
-      const char *token = svn__apr_hash_index_val(hi);
+      const char *path = apr_hash_this_key(hi);
+      const char *token = apr_hash_this_val(hi);
 
       svn_pool_clear(iterpool);
 

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/hooks.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/hooks.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/hooks.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/hooks.c Thu Jul \
31 10:44:15 2014 @@ -184,8 +184,8 @@ env_from_env_hash(apr_hash_t *env_hash,
   for (hi = apr_hash_first(scratch_pool, env_hash); hi; hi = apr_hash_next(hi))
     {
       *envp = apr_psprintf(result_pool, "%s=%s",
-                           (const char *)svn__apr_hash_index_key(hi),
-                           (const char *)svn__apr_hash_index_val(hi));
+                           (const char *)apr_hash_this_key(hi),
+                           (const char *)apr_hash_this_val(hi));
       envp++;
     }
   *envp = NULL;
@@ -519,8 +519,8 @@ lock_token_content(apr_file_t **handle, 
   for (hi = apr_hash_first(pool, lock_tokens); hi;
        hi = apr_hash_next(hi))
     {
-      const char *token = svn__apr_hash_index_key(hi);
-      const char *path = svn__apr_hash_index_val(hi);
+      const char *token = apr_hash_this_key(hi);
+      const char *path = apr_hash_this_val(hi);
 
       svn_stringbuf_appendstr(lock_str,
         svn_stringbuf_createf(pool, "%s|%s\n",

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/load-fs-vtable.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/load-fs-vtable.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/load-fs-vtable.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/load-fs-vtable.c \
Thu Jul 31 10:44:15 2014 @@ -209,8 +209,8 @@ prefix_mergeinfo_paths(svn_string_t **me
   prefixed_mergeinfo = apr_hash_make(pool);
   for (hi = apr_hash_first(pool, mergeinfo); hi; hi = apr_hash_next(hi))
     {
-      const char *merge_source = svn__apr_hash_index_key(hi);
-      svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+      const char *merge_source = apr_hash_this_key(hi);
+      svn_rangelist_t *rangelist = apr_hash_this_val(hi);
       const char *path;
 
       merge_source = svn_relpath_canonicalize(merge_source, pool);
@@ -269,8 +269,8 @@ renumber_mergeinfo_revs(svn_string_t **f
 
   for (hi = apr_hash_first(subpool, mergeinfo); hi; hi = apr_hash_next(hi))
     {
-      const char *merge_source = svn__apr_hash_index_key(hi);
-      svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+      const char *merge_source = apr_hash_this_key(hi);
+      svn_rangelist_t *rangelist = apr_hash_this_val(hi);
       struct parse_baton *pb = rb->pb;
       int i;
 
@@ -831,7 +831,7 @@ remove_node_props(void *baton)
 
   for (hi = apr_hash_first(nb->pool, proplist); hi; hi = apr_hash_next(hi))
     {
-      const char *key = svn__apr_hash_index_key(hi);
+      const char *key = apr_hash_this_key(hi);
 
       SVN_ERR(change_node_prop(rb->txn_root, nb->path, key, NULL,
                                rb->pb->validate_props, nb->pool));

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/log.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/log.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/log.c Thu Jul \
31 10:44:15 2014 @@ -82,8 +82,8 @@ svn_repos_check_revision_access(svn_repo
   subpool = svn_pool_create(pool);
   for (hi = apr_hash_first(pool, changes); hi; hi = apr_hash_next(hi))
     {
-      const char *key = svn__apr_hash_index_key(hi);
-      svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+      const char *key = apr_hash_this_key(hi);
+      svn_fs_path_change2_t *change = apr_hash_this_val(hi);
       svn_boolean_t readable;
 
       svn_pool_clear(subpool);
@@ -217,9 +217,9 @@ detect_changed(apr_hash_t **changed,
       /* NOTE:  Much of this loop is going to look quite similar to
          svn_repos_check_revision_access(), but we have to do more things
          here, so we'll live with the duplication. */
-      const char *path = svn__apr_hash_index_key(hi);
-      apr_ssize_t path_len = svn__apr_hash_index_klen(hi);
-      svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+      const char *path = apr_hash_this_key(hi);
+      apr_ssize_t path_len = apr_hash_this_key_len(hi);
+      svn_fs_path_change2_t *change = apr_hash_this_val(hi);
       char action;
       svn_log_changed_path2_t *item;
 
@@ -614,7 +614,7 @@ fs_mergeinfo_changed(svn_mergeinfo_catal
        hi;
        hi = apr_hash_next(hi))
     {
-      svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+      svn_fs_path_change2_t *change = apr_hash_this_val(hi);
 
       /* If there was a prop change and we are not positive that _no_
          mergeinfo change happened, we must assume that it might have. */
@@ -646,7 +646,7 @@ fs_mergeinfo_changed(svn_mergeinfo_catal
        hi = apr_hash_next(hi))
     {
       const char *changed_path;
-      svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+      svn_fs_path_change2_t *change = apr_hash_this_val(hi);
       const char *base_path = NULL;
       svn_revnum_t base_rev = SVN_INVALID_REVNUM;
       svn_fs_root_t *base_root = NULL;
@@ -663,7 +663,7 @@ fs_mergeinfo_changed(svn_mergeinfo_catal
         continue;
 
       /* Begin actual processing */
-      changed_path = svn__apr_hash_index_key(hi);
+      changed_path = apr_hash_this_key(hi);
       svn_pool_clear(iterpool);
 
       switch (change->change_kind)
@@ -1022,9 +1022,9 @@ get_combined_mergeinfo_changes(svn_merge
   for (hi = apr_hash_first(scratch_pool, added_mergeinfo_catalog);
        hi; hi = apr_hash_next(hi))
     {
-      const char *changed_path = svn__apr_hash_index_key(hi);
-      apr_ssize_t klen = svn__apr_hash_index_klen(hi);
-      svn_mergeinfo_t added = svn__apr_hash_index_val(hi);
+      const char *changed_path = apr_hash_this_key(hi);
+      apr_ssize_t klen = apr_hash_this_key_len(hi);
+      svn_mergeinfo_t added = apr_hash_this_val(hi);
       svn_mergeinfo_t deleted;
 
       for (i = 0; i < paths->nelts; i++)
@@ -1252,7 +1252,7 @@ send_log(svn_revnum_t rev,
            hi = apr_hash_next(hi))
         {
           svn_boolean_t path_is_in_history = FALSE;
-          const char *changed_path = svn__apr_hash_index_key(hi);
+          const char *changed_path = apr_hash_this_key(hi);
           apr_hash_index_t *hi2;
 
           /* Look at each path on the log target's mergeinfo. */
@@ -1261,8 +1261,8 @@ send_log(svn_revnum_t rev,
                hi2;
                hi2 = apr_hash_next(hi2))
             {
-              const char *mergeinfo_path = svn__apr_hash_index_key(hi2);
-              svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi2);
+              const char *mergeinfo_path = apr_hash_this_key(hi2);
+              svn_rangelist_t *rangelist = apr_hash_this_val(hi2);
 
               /* Check whether CHANGED_PATH at revision REV is a child of
                  a (path, revision) tuple in LOG_TARGET_HISTORY_AS_MERGEINFO. */
@@ -1535,8 +1535,8 @@ combine_mergeinfo_path_lists(apr_array_h
       int i;
       struct rangelist_path *rp = apr_palloc(subpool, sizeof(*rp));
 
-      rp->path = svn__apr_hash_index_key(hi);
-      rp->rangelist = svn__apr_hash_index_val(hi);
+      rp->path = apr_hash_this_key(hi);
+      rp->rangelist = apr_hash_this_val(hi);
       APR_ARRAY_PUSH(rangelist_paths, struct rangelist_path *) = rp;
 
       /* We need to make local copies of the rangelist, since we will be

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/replay.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/replay.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/replay.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/replay.c Thu \
Jul 31 10:44:15 2014 @@ -184,8 +184,8 @@ add_subdir(svn_fs_root_t *source_root,
 
   for (phi = apr_hash_first(pool, props); phi; phi = apr_hash_next(phi))
     {
-      const char *key = svn__apr_hash_index_key(phi);
-      svn_string_t *val = svn__apr_hash_index_val(phi);
+      const char *key = apr_hash_this_key(phi);
+      svn_string_t *val = apr_hash_this_val(phi);
 
       svn_pool_clear(subpool);
       SVN_ERR(editor->change_dir_prop(*dir_baton, key, val, subpool));
@@ -200,7 +200,7 @@ add_subdir(svn_fs_root_t *source_root,
     {
       svn_fs_path_change2_t *change;
       svn_boolean_t readable = TRUE;
-      svn_fs_dirent_t *dent = svn__apr_hash_index_val(hi);
+      svn_fs_dirent_t *dent = apr_hash_this_val(hi);
       const char *copyfrom_path = NULL;
       svn_revnum_t copyfrom_rev = SVN_INVALID_REVNUM;
       const char *new_edit_path;
@@ -303,8 +303,8 @@ add_subdir(svn_fs_root_t *source_root,
 
           for (phi = apr_hash_first(pool, props); phi; phi = apr_hash_next(phi))
             {
-              const char *key = svn__apr_hash_index_key(phi);
-              svn_string_t *val = svn__apr_hash_index_val(phi);
+              const char *key = apr_hash_this_key(phi);
+              svn_string_t *val = apr_hash_this_val(phi);
 
               SVN_ERR(editor->change_file_prop(file_baton, key, val, subpool));
             }
@@ -877,9 +877,9 @@ svn_repos_replay2(svn_fs_root_t *root,
   changed_paths = apr_hash_make(pool);
   for (hi = apr_hash_first(pool, fs_changes); hi; hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
-      apr_ssize_t keylen = svn__apr_hash_index_klen(hi);
-      svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+      const char *path = apr_hash_this_key(hi);
+      apr_ssize_t keylen = apr_hash_this_key_len(hi);
+      svn_fs_path_change2_t *change = apr_hash_this_val(hi);
       svn_boolean_t allowed = TRUE;
 
       if (authz_read_func)
@@ -1052,7 +1052,7 @@ add_subdir_ev2(svn_fs_root_t *source_roo
     {
       svn_fs_path_change2_t *change;
       svn_boolean_t readable = TRUE;
-      svn_fs_dirent_t *dent = svn__apr_hash_index_val(hi);
+      svn_fs_dirent_t *dent = apr_hash_this_val(hi);
       const char *copyfrom_path = NULL;
       svn_revnum_t copyfrom_rev = SVN_INVALID_REVNUM;
       const char *child_relpath;
@@ -1503,9 +1503,9 @@ svn_repos__replay_ev2(svn_fs_root_t *roo
   for (hi = apr_hash_first(scratch_pool, fs_changes); hi;
         hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
-      apr_ssize_t keylen = svn__apr_hash_index_klen(hi);
-      svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+      const char *path = apr_hash_this_key(hi);
+      apr_ssize_t keylen = apr_hash_this_key_len(hi);
+      svn_fs_path_change2_t *change = apr_hash_this_val(hi);
       svn_boolean_t allowed = TRUE;
 
       if (authz_read_func)

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/reporter.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/reporter.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/reporter.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/reporter.c Thu \
Jul 31 10:44:15 2014 @@ -603,8 +603,8 @@ delta_proplists(report_baton_t *b, svn_r
       /* So source, i.e. all new.  Transmit all target props. */
       for (hi = apr_hash_first(pool, t_props); hi; hi = apr_hash_next(hi))
         {
-          const char *key = svn__apr_hash_index_key(hi);
-          svn_string_t *val = svn__apr_hash_index_val(hi);
+          const char *key = apr_hash_this_key(hi);
+          svn_string_t *val = apr_hash_this_val(hi);
 
           SVN_ERR(change_fn(b, object, key, val, pool));
         }
@@ -1246,7 +1246,7 @@ delta_dirs(report_baton_t *b, svn_revnum
                hi;
                hi = apr_hash_next(hi))
             {
-              const svn_fs_dirent_t *s_entry = svn__apr_hash_index_val(hi);
+              const svn_fs_dirent_t *s_entry = apr_hash_this_val(hi);
 
               svn_pool_clear(iterpool);
 

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/repos.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/repos.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/repos.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/repos.c Thu Jul \
31 10:44:15 2014 @@ -2119,22 +2119,54 @@ lock_db_logs_file(svn_repos_t *repos,
 }
 
 
+/* Baton used with fs_hotcopy_notify(), specifying the svn_repos layer
+ * notification parameters.
+ */
+struct fs_hotcopy_notify_baton_t
+{
+  svn_repos_notify_func_t notify_func;
+  void *notify_baton;
+};
+
+/* Implements svn_fs_hotcopy_notify_t as forwarding to a
+ * svn_repos_notify_func_t passed in a fs_hotcopy_notify_baton_t* BATON.
+ */
+static void
+fs_hotcopy_notify(void *baton,
+                  svn_revnum_t start_revision,
+                  svn_revnum_t end_revision,
+                  apr_pool_t *pool)
+{
+  struct fs_hotcopy_notify_baton_t *fs_baton = baton;
+  svn_repos_notify_t *notify;
+
+  notify = svn_repos_notify_create(svn_repos_notify_hotcopy_rev_range, pool);
+  notify->start_revision = start_revision;
+  notify->end_revision = end_revision;
+
+  fs_baton->notify_func(fs_baton->notify_baton, notify, pool);
+}
+
 /* Make a copy of a repository with hot backup of fs. */
 svn_error_t *
-svn_repos_hotcopy2(const char *src_path,
+svn_repos_hotcopy3(const char *src_path,
                    const char *dst_path,
                    svn_boolean_t clean_logs,
                    svn_boolean_t incremental,
+                   svn_repos_notify_func_t notify_func,
+                   void *notify_baton,
                    svn_cancel_func_t cancel_func,
                    void *cancel_baton,
                    apr_pool_t *pool)
 {
-  svn_repos_t *src_repos;
-  svn_repos_t *dst_repos;
+  svn_fs_hotcopy_notify_t fs_notify_func;
+  struct fs_hotcopy_notify_baton_t fs_notify_baton;
   struct hotcopy_ctx_t hotcopy_context;
-  svn_error_t *err;
   const char *src_abspath;
   const char *dst_abspath;
+  svn_repos_t *src_repos;
+  svn_repos_t *dst_repos;
+  svn_error_t *err;
 
   SVN_ERR(svn_dirent_get_absolute(&src_abspath, src_path, pool));
   SVN_ERR(svn_dirent_get_absolute(&dst_abspath, dst_path, pool));
@@ -2200,8 +2232,13 @@ svn_repos_hotcopy2(const char *src_path,
      No one should be accessing it at the moment */
   SVN_ERR(lock_repos(dst_repos, TRUE, FALSE, pool));
 
-  SVN_ERR(svn_fs_hotcopy2(src_repos->db_path, dst_repos->db_path,
+  fs_notify_func = notify_func ? fs_hotcopy_notify : NULL;
+  fs_notify_baton.notify_func = notify_func;
+  fs_notify_baton.notify_baton = notify_baton;
+
+  SVN_ERR(svn_fs_hotcopy3(src_repos->db_path, dst_repos->db_path,
                           clean_logs, incremental,
+                          fs_notify_func, &fs_notify_baton,
                           cancel_func, cancel_baton, pool));
 
   /* Destination repository is ready.  Stamp it with a format number. */
@@ -2211,6 +2248,20 @@ svn_repos_hotcopy2(const char *src_path,
 }
 
 svn_error_t *
+svn_repos_hotcopy2(const char *src_path,
+                   const char *dst_path,
+                   svn_boolean_t clean_logs,
+                   svn_boolean_t incremental,
+                   svn_cancel_func_t cancel_func,
+                   void *cancel_baton,
+                   apr_pool_t *pool)
+{
+  return svn_error_trace(svn_repos_hotcopy3(src_path, dst_path, clean_logs,
+                                            incremental, NULL, NULL,
+                                            cancel_func, cancel_baton, pool));
+}
+
+svn_error_t *
 svn_repos_hotcopy(const char *src_path,
                   const char *dst_path,
                   svn_boolean_t clean_logs,

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/rev_hunt.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/rev_hunt.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/rev_hunt.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/rev_hunt.c Thu \
Jul 31 10:44:15 2014 @@ -1253,8 +1253,8 @@ find_merged_revisions(apr_array_header_t
           for (hi = apr_hash_first(iterpool, old_pr->merged_mergeinfo); hi;
                hi = apr_hash_next(hi))
             {
-              const char *path = svn__apr_hash_index_key(hi);
-              svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+              const char *path = apr_hash_this_key(hi);
+              svn_rangelist_t *rangelist = apr_hash_this_val(hi);
               apr_pool_t *iterpool3;
               int j;
 

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/cache-membuffer.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/cache-membuffer.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/cache-membuffer.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/cache-membuffer.c \
Thu Jul 31 10:44:15 2014 @@ -115,6 +115,21 @@
  * on their hash key.
  */
 
+/* APR's read-write lock implementation on Windows is horribly inefficient.
+ * Even with very low contention a runtime overhead of 35% percent has been
+ * measured for 'svn-bench null-export' over ra_serf.
+ *
+ * Use a simple mutex on Windows.  Because there is one mutex per segment,
+ * large machines should (and usually can) be configured with large caches
+ * such that read contention is kept low.  This is basically the situation
+ * we head before 1.8.
+ */
+#ifdef WIN32
+#  define USE_SIMPLE_MUTEX 1
+#else
+#  define USE_SIMPLE_MUTEX 0
+#endif
+
 /* For more efficient copy operations, let's align all data items properly.
  * Must be a power of 2.
  */
@@ -581,11 +596,15 @@ struct svn_membuffer_t
    * the cache's creator doesn't feel the cache needs to be
    * thread-safe.
    */
+#  if USE_SIMPLE_MUTEX
+  svn_mutex__t *lock;
+#  else
   apr_thread_rwlock_t *lock;
+#  endif
 
   /* If set, write access will wait until they get exclusive access.
    * Otherwise, they will become no-ops if the segment is currently
-   * read-locked.
+   * read-locked.  Only used when LOCK is an r/w lock.
    */
   svn_boolean_t allow_blocking_writes;
 #endif
@@ -611,12 +630,16 @@ static svn_error_t *
 read_lock_cache(svn_membuffer_t *cache)
 {
 #if APR_HAS_THREADS
+#  if USE_SIMPLE_MUTEX
+  return svn_mutex__lock(cache->lock);
+#  else
   if (cache->lock)
   {
     apr_status_t status = apr_thread_rwlock_rdlock(cache->lock);
     if (status)
       return svn_error_wrap_apr(status, _("Can't lock cache mutex"));
   }
+#  endif
 #endif
   return SVN_NO_ERROR;
 }
@@ -627,6 +650,12 @@ static svn_error_t *
 write_lock_cache(svn_membuffer_t *cache, svn_boolean_t *success)
 {
 #if APR_HAS_THREADS
+#  if USE_SIMPLE_MUTEX
+
+  return svn_mutex__lock(cache->lock);
+
+#  else
+
   if (cache->lock)
     {
       apr_status_t status;
@@ -648,6 +677,8 @@ write_lock_cache(svn_membuffer_t *cache,
         return svn_error_wrap_apr(status,
                                   _("Can't write-lock cache mutex"));
     }
+
+#  endif
 #endif
   return SVN_NO_ERROR;
 }
@@ -659,10 +690,18 @@ static svn_error_t *
 force_write_lock_cache(svn_membuffer_t *cache)
 {
 #if APR_HAS_THREADS
+#  if USE_SIMPLE_MUTEX
+
+  return svn_mutex__lock(cache->lock);
+
+#  else
+
   apr_status_t status = apr_thread_rwlock_wrlock(cache->lock);
   if (status)
     return svn_error_wrap_apr(status,
                               _("Can't write-lock cache mutex"));
+
+#  endif
 #endif
   return SVN_NO_ERROR;
 }
@@ -674,6 +713,12 @@ static svn_error_t *
 unlock_cache(svn_membuffer_t *cache, svn_error_t *err)
 {
 #if APR_HAS_THREADS
+#  if USE_SIMPLE_MUTEX
+
+  return svn_mutex__unlock(cache->lock, SVN_NO_ERROR);
+
+#  else
+
   if (cache->lock)
   {
     apr_status_t status = apr_thread_rwlock_unlock(cache->lock);
@@ -683,6 +728,8 @@ unlock_cache(svn_membuffer_t *cache, svn
     if (status)
       return svn_error_wrap_apr(status, _("Can't unlock cache mutex"));
   }
+
+#  endif
 #endif
   return err;
 }
@@ -1768,6 +1815,12 @@ svn_cache__membuffer_cache_create(svn_me
        * the cache's creator doesn't feel the cache needs to be
        * thread-safe.
        */
+#  if USE_SIMPLE_MUTEX
+
+      SVN_ERR(svn_mutex__init(&c[seg].lock, thread_safe, FALSE, pool));
+
+#  else
+
       c[seg].lock = NULL;
       if (thread_safe)
         {
@@ -1777,12 +1830,17 @@ svn_cache__membuffer_cache_create(svn_me
             return svn_error_wrap_apr(status, _("Can't create cache mutex"));
         }
 
+#  endif
+
       /* Select the behavior of write operations.
        */
       c[seg].allow_blocking_writes = allow_blocking_writes;
 #endif
 
-      SVN_ERR(svn_mutex__init(&c[seg].counter_mutex, thread_safe, FALSE,
+      /* Since a simple mutex already guarantees fully serialized access,
+         we need this mutex only when we use multple-reader-1-writer locks. */
+      SVN_ERR(svn_mutex__init(&c[seg].counter_mutex,
+                              thread_safe && !USE_SIMPLE_MUTEX, FALSE,
                               pool));
     }
 

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/config_auth.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/config_auth.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/config_auth.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/config_auth.c \
Thu Jul 31 10:44:15 2014 @@ -208,7 +208,7 @@ svn_config_walk_auth_data(const char *co
       itempool = svn_pool_create(iterpool);
       for (hi = apr_hash_first(iterpool, nodes); hi; hi = apr_hash_next(hi))
         {
-          svn_io_dirent2_t *dirent = svn__apr_hash_index_val(hi);
+          svn_io_dirent2_t *dirent = apr_hash_this_val(hi);
           svn_stream_t *stream;
           apr_hash_t *creds_hash;
           const svn_string_t *realm;
@@ -222,7 +222,7 @@ svn_config_walk_auth_data(const char *co
 
           svn_pool_clear(itempool);
 
-          item_path = svn_dirent_join(dir_path, svn__apr_hash_index_key(hi),
+          item_path = svn_dirent_join(dir_path, apr_hash_this_key(hi),
                                       itempool);
 
           err = svn_stream_open_readonly(&stream, item_path,

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/debug.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/debug.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/debug.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/debug.c Thu Jul \
31 10:44:15 2014 @@ -145,8 +145,8 @@ svn_dbg__print_props(apr_hash_t *props,
   for (hi = apr_hash_first(apr_hash_pool_get(props), props); hi;
         hi = apr_hash_next(hi))
     {
-      const char *name = svn__apr_hash_index_key(hi);
-      svn_string_t *val = svn__apr_hash_index_val(hi);
+      const char *name = apr_hash_this_key(hi);
+      svn_string_t *val = apr_hash_this_val(hi);
 
       svn_dbg__printf("    '%s' -> '%s'\n", name, val->data);
     }

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/hash.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/hash.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/hash.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/hash.c Thu Jul \
31 10:44:15 2014 @@ -535,7 +535,7 @@ svn_hash_keys(apr_array_header_t **array
 
   for (hi = apr_hash_first(pool, hash); hi; hi = apr_hash_next(hi))
     {
-      APR_ARRAY_PUSH(*array, const char *) = svn__apr_hash_index_key(hi);
+      APR_ARRAY_PUSH(*array, const char *) = apr_hash_this_key(hi);
     }
 
   return SVN_NO_ERROR;

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/io.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/io.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/io.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/io.c Thu Jul 31 \
10:44:15 2014 @@ -2238,6 +2238,35 @@ svn_io_file_lock2(const char *lock_file,
   return svn_io_lock_open_file(lockfile_handle, exclusive, nonblocking, pool);
 }
 
+svn_error_t *
+svn_io__file_lock_autocreate(const char *lock_file,
+                             apr_pool_t *pool)
+{
+  svn_error_t *err
+    = svn_io_file_lock2(lock_file, TRUE, FALSE, pool);
+  if (err && APR_STATUS_IS_ENOENT(err->apr_err))
+    {
+      /* No lock file?  No big deal; these are just empty files anyway.
+         Create it and try again. */
+      svn_error_clear(err);
+
+      /* This file creation is racy.
+         We don't care as long as file gets created at all. */
+      err = svn_io_file_create_empty(lock_file, pool);
+      if (err && APR_STATUS_IS_EEXIST(err->apr_err))
+        {
+          svn_error_clear(err);
+          err = NULL;
+        }
+
+      /* Finally, lock the file - if it exists */
+      if (!err)
+        err = svn_io_file_lock2(lock_file, TRUE, FALSE, pool);
+    }
+
+  return svn_error_trace(err);
+}
+
 
 
 /* Data consistency/coherency operations. */
@@ -2529,8 +2558,8 @@ svn_io_remove_dir2(const char *path, svn
 
   for (hi = apr_hash_first(subpool, dirents); hi; hi = apr_hash_next(hi))
     {
-      const char *name = svn__apr_hash_index_key(hi);
-      const svn_io_dirent2_t *dirent = svn__apr_hash_index_val(hi);
+      const char *name = apr_hash_this_key(hi);
+      const svn_io_dirent2_t *dirent = apr_hash_this_val(hi);
       const char *fullpath;
 
       fullpath = svn_dirent_join(path, name, subpool);
@@ -5007,8 +5036,25 @@ svn_io_open_unique_file3(apr_file_t **fi
    * case, but only if the umask allows it. */
   if (!using_system_temp_dir)
     {
+      svn_error_t *err;
+
       SVN_ERR(merge_default_file_perms(tempfile, &perms, scratch_pool));
-      SVN_ERR(file_perms_set2(tempfile, perms, scratch_pool));
+      err = file_perms_set2(tempfile, perms, scratch_pool);
+      if (err)
+        {
+          if (APR_STATUS_IS_INCOMPLETE(err->apr_err) ||
+              APR_STATUS_IS_ENOTIMPL(err->apr_err))
+            svn_error_clear(err);
+          else
+            {
+              const char *message;
+              message = apr_psprintf(scratch_pool,
+                                     _("Can't set permissions on '%s'"),
+                                     svn_dirent_local_style(tempname,
+                                                            scratch_pool));
+              return svn_error_quick_wrap(err, message);
+            }
+        }
     }
 #endif
 

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/iter.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/iter.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/iter.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/iter.c Thu Jul \
31 10:44:15 2014 @@ -184,45 +184,28 @@ svn_iter__break(void)
   return &internal_break_error;
 }
 
-/* Note about the type casts:  apr_hash_this() does not expect a const hash
- * index pointer even though it does not modify the hash index.  In
- * Subversion we're trying to be const-correct, so these functions all take
- * a const hash index and we cast away the const when passing it down to
- * APR.  (A compiler may warn about casting away 'const', but at least this
- * cast is explicit and gathered in one place.) */
-
-const void *svn__apr_hash_index_key(const apr_hash_index_t *hi)
+#if !APR_VERSION_AT_LEAST(1, 5, 0)
+const void *apr_hash_this_key(apr_hash_index_t *hi)
 {
-#if APR_VERSION_AT_LEAST(1, 5, 0)
-  return apr_hash_this_key((apr_hash_index_t *)hi);
-#else
   const void *key;
 
   apr_hash_this((apr_hash_index_t *)hi, &key, NULL, NULL);
   return key;
-#endif
 }
 
-apr_ssize_t svn__apr_hash_index_klen(const apr_hash_index_t *hi)
+apr_ssize_t apr_hash_this_key_len(apr_hash_index_t *hi)
 {
-#if APR_VERSION_AT_LEAST(1, 5, 0)
-  return apr_hash_this_key_len((apr_hash_index_t *)hi);
-#else
   apr_ssize_t klen;
 
   apr_hash_this((apr_hash_index_t *)hi, NULL, &klen, NULL);
   return klen;
-#endif
 }
 
-void *svn__apr_hash_index_val(const apr_hash_index_t *hi)
+void *apr_hash_this_val(apr_hash_index_t *hi)
 {
-#if APR_VERSION_AT_LEAST(1, 5, 0)
-  return apr_hash_this_val((apr_hash_index_t *)hi);
-#else
   void *val;
 
   apr_hash_this((apr_hash_index_t *)hi, NULL, NULL, &val);
   return val;
-#endif
 }
+#endif

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/log.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/log.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/log.c Thu Jul 31 \
10:44:15 2014 @@ -316,7 +316,7 @@ svn_log__lock(apr_hash_t *targets,
 
   for (hi = apr_hash_first(pool, targets); hi; hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
+      const char *path = apr_hash_this_key(hi);
       svn_pool_clear(iterpool);
       if (space_separated_paths->len)
         svn_stringbuf_appendcstr(space_separated_paths, " ");
@@ -339,7 +339,7 @@ svn_log__unlock(apr_hash_t *targets,
 
   for (hi = apr_hash_first(pool, targets); hi; hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
+      const char *path = apr_hash_this_key(hi);
       svn_pool_clear(iterpool);
       if (space_separated_paths->len)
         svn_stringbuf_appendcstr(space_separated_paths, " ");

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/mergeinfo.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/mergeinfo.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/mergeinfo.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/mergeinfo.c Thu \
Jul 31 10:44:15 2014 @@ -1266,7 +1266,7 @@ svn_mergeinfo__set_inheritance(svn_merge
            hi;
            hi = apr_hash_next(hi))
         {
-          svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+          svn_rangelist_t *rangelist = apr_hash_this_val(hi);
 
           if (rangelist)
             svn_rangelist__set_inheritance(rangelist, inheritable);
@@ -1870,8 +1870,8 @@ svn_mergeinfo_intersect2(svn_mergeinfo_t
   for (hi = apr_hash_first(scratch_pool, mergeinfo1);
        hi; hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
-      svn_rangelist_t *rangelist1 = svn__apr_hash_index_val(hi);
+      const char *path = apr_hash_this_key(hi);
+      svn_rangelist_t *rangelist1 = apr_hash_this_val(hi);
       svn_rangelist_t *rangelist2;
 
       svn_pool_clear(iterpool);
@@ -1992,7 +1992,7 @@ svn_mergeinfo_sort(svn_mergeinfo_t input
 
   for (hi = apr_hash_first(pool, input); hi; hi = apr_hash_next(hi))
     {
-      apr_array_header_t *rl = svn__apr_hash_index_val(hi);
+      apr_array_header_t *rl = apr_hash_this_val(hi);
 
       svn_sort__array(rl, svn_sort_compare_ranges);
     }
@@ -2010,8 +2010,8 @@ svn_mergeinfo_catalog_dup(svn_mergeinfo_
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *key = svn__apr_hash_index_key(hi);
-      svn_mergeinfo_t val = svn__apr_hash_index_val(hi);
+      const char *key = apr_hash_this_key(hi);
+      svn_mergeinfo_t val = apr_hash_this_val(hi);
 
       svn_hash_sets(new_mergeinfo_catalog, apr_pstrdup(pool, key),
                     svn_mergeinfo_dup(val, pool));
@@ -2028,9 +2028,9 @@ svn_mergeinfo_dup(svn_mergeinfo_t mergei
 
   for (hi = apr_hash_first(pool, mergeinfo); hi; hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
-      apr_ssize_t pathlen = svn__apr_hash_index_klen(hi);
-      svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+      const char *path = apr_hash_this_key(hi);
+      apr_ssize_t pathlen = apr_hash_this_key_len(hi);
+      svn_rangelist_t *rangelist = apr_hash_this_val(hi);
 
       apr_hash_set(new_mergeinfo, apr_pstrmemdup(pool, path, pathlen), pathlen,
                    svn_rangelist_dup(rangelist, pool));
@@ -2056,9 +2056,9 @@ svn_mergeinfo_inheritable2(svn_mergeinfo
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *key = svn__apr_hash_index_key(hi);
-      apr_ssize_t keylen = svn__apr_hash_index_klen(hi);
-      svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+      const char *key = apr_hash_this_key(hi);
+      apr_ssize_t keylen = apr_hash_this_key_len(hi);
+      svn_rangelist_t *rangelist = apr_hash_this_val(hi);
       svn_rangelist_t *inheritable_rangelist;
 
       if (!path || svn_path_compare_paths(path, key) == 0)
@@ -2141,8 +2141,8 @@ svn_mergeinfo__remove_empty_rangelists(s
       for (hi = apr_hash_first(scratch_pool, mergeinfo); hi;
            hi = apr_hash_next(hi))
         {
-          const char *path = svn__apr_hash_index_key(hi);
-          svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+          const char *path = apr_hash_this_key(hi);
+          svn_rangelist_t *rangelist = apr_hash_this_val(hi);
 
           if (rangelist->nelts == 0)
             {
@@ -2168,8 +2168,8 @@ svn_mergeinfo__remove_prefix_from_catalo
 
   for (hi = apr_hash_first(pool, in_catalog); hi; hi = apr_hash_next(hi))
     {
-      const char *original_path = svn__apr_hash_index_key(hi);
-      svn_mergeinfo_t value = svn__apr_hash_index_val(hi);
+      const char *original_path = apr_hash_this_key(hi);
+      svn_mergeinfo_t value = apr_hash_this_val(hi);
       const char *new_path;
 
       new_path = svn_fspath__skip_ancestor(prefix_path, original_path);
@@ -2196,8 +2196,8 @@ svn_mergeinfo__add_prefix_to_catalog(svn
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *original_path = svn__apr_hash_index_key(hi);
-      svn_mergeinfo_t value = svn__apr_hash_index_val(hi);
+      const char *original_path = apr_hash_this_key(hi);
+      svn_mergeinfo_t value = apr_hash_this_val(hi);
 
       if (original_path[0] == '/')
         original_path++;
@@ -2227,8 +2227,8 @@ svn_mergeinfo__add_suffix_to_mergeinfo(s
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *fspath = svn__apr_hash_index_key(hi);
-      svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+      const char *fspath = apr_hash_this_key(hi);
+      svn_rangelist_t *rangelist = apr_hash_this_val(hi);
 
       svn_hash_sets(*out_mergeinfo,
                     svn_fspath__join(fspath, suffix_relpath, result_pool),
@@ -2370,7 +2370,7 @@ svn_mergeinfo__get_range_endpoints(svn_r
 
       for (hi = apr_hash_first(pool, mergeinfo); hi; hi = apr_hash_next(hi))
         {
-          svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+          svn_rangelist_t *rangelist = apr_hash_this_val(hi);
 
           if (rangelist->nelts)
             {
@@ -2407,8 +2407,8 @@ svn_mergeinfo__filter_catalog_by_ranges(
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
-      svn_mergeinfo_t mergeinfo = svn__apr_hash_index_val(hi);
+      const char *path = apr_hash_this_key(hi);
+      svn_mergeinfo_t mergeinfo = apr_hash_this_val(hi);
       svn_mergeinfo_t filtered_mergeinfo;
 
       SVN_ERR(svn_mergeinfo__filter_mergeinfo_by_ranges(&filtered_mergeinfo,
@@ -2452,8 +2452,8 @@ svn_mergeinfo__filter_mergeinfo_by_range
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *path = svn__apr_hash_index_key(hi);
-          svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+          const char *path = apr_hash_this_key(hi);
+          svn_rangelist_t *rangelist = apr_hash_this_val(hi);
 
           if (rangelist->nelts)
             {
@@ -2489,8 +2489,8 @@ svn_mergeinfo__adjust_mergeinfo_rangelis
            hi = apr_hash_next(hi))
         {
           int i;
-          const char *path = svn__apr_hash_index_key(hi);
-          svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+          const char *path = apr_hash_this_key(hi);
+          svn_rangelist_t *rangelist = apr_hash_this_val(hi);
           svn_rangelist_t *adjusted_rangelist =
             apr_array_make(result_pool, rangelist->nelts,
                            sizeof(svn_merge_range_t *));
@@ -2529,7 +2529,7 @@ svn_mergeinfo__is_noninheritable(svn_mer
            hi;
            hi = apr_hash_next(hi))
         {
-          svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+          svn_rangelist_t *rangelist = apr_hash_this_val(hi);
           int i;
 
           for (i = 0; i < rangelist->nelts; i++)
@@ -2626,7 +2626,7 @@ svn_rangelist__merge_many(svn_rangelist_
            hi;
            hi = apr_hash_next(hi))
         {
-          svn_rangelist_t *subtree_rangelist = svn__apr_hash_index_val(hi);
+          svn_rangelist_t *subtree_rangelist = apr_hash_this_val(hi);
 
           svn_pool_clear(iterpool);
           SVN_ERR(svn_rangelist_merge2(merged_rangelist, subtree_rangelist,

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/named_atomic.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/named_atomic.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/named_atomic.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/named_atomic.c \
Thu Jul 31 10:44:15 2014 @@ -32,6 +32,7 @@
 #include "svn_pools.h"
 #include "svn_dirent_uri.h"
 #include "svn_io.h"
+#include "private/svn_io_private.h"
 
 /* Implementation aspects.
  *
@@ -197,8 +198,8 @@ struct shared_data_t
  */
 struct mutex_t
 {
-  /* Inter-process sync. is handled by through lock file. */
-  apr_file_t *lock_file;
+  /* Inter-process sync. is handled by through a lock file. */
+  const char *lock_name;
 
   /* Pool to be used with lock / unlock functions */
   apr_pool_t *pool;
@@ -274,15 +275,10 @@ init_thread_mutex(void *baton, apr_pool_
 static svn_error_t *
 lock(struct mutex_t *mutex)
 {
-  svn_error_t *err;
-
-  /* Get lock on the filehandle. */
-  SVN_ERR(svn_mutex__lock(thread_mutex));
-  err = svn_io_lock_open_file(mutex->lock_file, TRUE, FALSE, mutex->pool);
-
-  return err
-    ? svn_mutex__unlock(thread_mutex, err)
-    : err;
+  SVN_MUTEX__WITH_LOCK(thread_mutex,
+                       svn_io__file_lock_autocreate(mutex->lock_name,
+                                                    mutex->pool));
+  return SVN_NO_ERROR;
 }
 
 /* Utility that releases the lock previously acquired via lock().  If the
@@ -292,36 +288,9 @@ lock(struct mutex_t *mutex)
 static svn_error_t *
 unlock(struct mutex_t *mutex, svn_error_t * outer_err)
 {
-  svn_error_t *unlock_err
-      = svn_io_unlock_open_file(mutex->lock_file, mutex->pool);
-  return svn_mutex__unlock(thread_mutex,
-                           svn_error_compose_create(outer_err,
-                                                    unlock_err));
-}
-
-#if APR_HAS_MMAP
-/* The last user to close a particular namespace should also remove the
- * lock file.  Failure to do so, however, does not affect further uses
- * of the same namespace.
- */
-static apr_status_t
-delete_lock_file(void *arg)
-{
-  struct mutex_t *mutex = arg;
-  const char *lock_name = NULL;
-
-  /* locks have already been cleaned up. Simply close the file */
-  apr_status_t status = apr_file_close(mutex->lock_file);
-
-  /* Remove the file from disk. This will fail if there ares still other
-   * users of this lock file, i.e. namespace. */
-  apr_file_name_get(&lock_name, mutex->lock_file);
-  if (lock_name)
-    apr_file_remove(lock_name, mutex->pool);
-
-  return status;
+  svn_pool_clear(mutex->pool);
+  return svn_mutex__unlock(thread_mutex, outer_err);
 }
-#endif /* APR_HAS_MMAP */
 
 /* Validate the ATOMIC parameter, i.e it's address.  Correct code will
  * never need this but if someone should accidentally to use a NULL or
@@ -411,29 +380,18 @@ svn_atomic_namespace__create(svn_atomic_
    */
   svn_atomic_namespace__t *new_ns = apr_pcalloc(result_pool, sizeof(**ns));
 
-  /* construct the names of the system objects that we need
+  /* construct the name of the system objects that we need
    */
   shm_name = apr_pstrcat(subpool, name, SHM_NAME_SUFFIX, SVN_VA_NULL);
-  lock_name = apr_pstrcat(subpool, name, MUTEX_NAME_SUFFIX, SVN_VA_NULL);
+  lock_name = apr_pstrcat(result_pool, name, MUTEX_NAME_SUFFIX, SVN_VA_NULL);
 
   /* initialize the lock objects
    */
   SVN_ERR(svn_atomic__init_once(&mutex_initialized, init_thread_mutex, NULL,
                                 result_pool));
 
-  new_ns->mutex.pool = result_pool;
-  SVN_ERR(svn_io_file_open(&new_ns->mutex.lock_file, lock_name,
-                           APR_READ | APR_WRITE | APR_CREATE,
-                           APR_OS_DEFAULT,
-                           result_pool));
-
-  /* Make sure the last user of our lock file will actually remove it.
-   * Please note that only the last file handle being closed will actually
-   * remove the underlying file (see docstring for apr_file_remove).
-   */
-  apr_pool_cleanup_register(result_pool, &new_ns->mutex,
-                            delete_lock_file,
-                            apr_pool_cleanup_null);
+  new_ns->mutex.pool = svn_pool_create(result_pool);
+  new_ns->mutex.lock_name = lock_name;
 
   /* Prevent concurrent initialization.
    */

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/object_pool.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/object_pool.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/object_pool.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/object_pool.c \
Thu Jul 31 10:44:15 2014 @@ -121,7 +121,7 @@ remove_unused_objects(svn_object_pool__t
        hi != NULL;
        hi = apr_hash_next(hi))
     {
-      object_ref_t *object_ref = svn__apr_hash_index_val(hi);
+      object_ref_t *object_ref = apr_hash_this_val(hi);
 
       /* note that we won't hand out new references while access
          to the hash is serialized */

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/string.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/string.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/string.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/string.c Thu Jul \
31 10:44:15 2014 @@ -1465,4 +1465,17 @@ svn_cstring__reverse_match_length(const 
   return max_len;
 }
 
+const char *
+svn_cstring_skip_prefix(const char *str, const char *prefix)
+{
+  apr_size_t len = strlen(prefix);
 
+  if (strncmp(str, prefix, len) == 0)
+    {
+      return str + len;
+    }
+  else
+    {
+      return NULL;
+    }
+}

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_crawler.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_crawler.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_crawler.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_crawler.c Thu \
Jul 31 10:44:15 2014 @@ -293,11 +293,11 @@ report_revisions_and_depths(svn_wc__db_t
        hi != NULL;
        hi = apr_hash_next(hi))
     {
-      const char *child = svn__apr_hash_index_key(hi);
+      const char *child = apr_hash_this_key(hi);
       const char *this_report_relpath;
       const char *this_abspath;
       svn_boolean_t this_switched = FALSE;
-      struct svn_wc__db_base_info_t *ths = svn__apr_hash_index_val(hi);
+      struct svn_wc__db_base_info_t *ths = apr_hash_this_val(hi);
 
       if (cancel_func)
         SVN_ERR(cancel_func(cancel_baton));

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_ops.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_ops.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_ops.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_ops.c Thu Jul \
31 10:44:15 2014 @@ -417,7 +417,7 @@ have_recursive_parent(apr_hash_t *queue,
 
   for (hi = apr_hash_first(scratch_pool, queue); hi; hi = apr_hash_next(hi))
     {
-      const committed_queue_item_t *qi = svn__apr_hash_index_val(hi);
+      const committed_queue_item_t *qi = apr_hash_this_val(hi);
 
       if (qi == item)
         continue;
@@ -509,7 +509,7 @@ svn_wc_process_committed_queue2(svn_wc_c
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *wcroot_abspath = svn__apr_hash_index_key(hi);
+      const char *wcroot_abspath = apr_hash_this_key(hi);
 
       svn_pool_clear(iterpool);
 

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c Thu \
Jul 31 10:44:15 2014 @@ -477,8 +477,7 @@ svn_wc__conflict_skel_add_prop_conflict(
        hi;
        hi = apr_hash_next(hi))
     {
-      svn_skel__prepend_str(apr_pstrdup(result_pool,
-                                        svn__apr_hash_index_key(hi)),
+      svn_skel__prepend_str(apr_pstrdup(result_pool, apr_hash_this_key(hi)),
                             conflict_names,
                             result_pool);
     }
@@ -1211,7 +1210,7 @@ svn_wc__conflict_create_markers(svn_skel
              hi;
              hi = apr_hash_next(hi))
           {
-            const char *propname = svn__apr_hash_index_key(hi);
+            const char *propname = apr_hash_this_key(hi);
 
             SVN_ERR(prop_conflict_skel_add(
                             prop_data, propname,
@@ -1994,7 +1993,7 @@ svn_wc__conflict_invoke_resolver(svn_wc_
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *propname = svn__apr_hash_index_key(hi);
+          const char *propname = apr_hash_this_key(hi);
           svn_boolean_t conflict_remains = TRUE;
 
           svn_pool_clear(iterpool);
@@ -2163,7 +2162,7 @@ read_prop_conflict_descs(apr_array_heade
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *propname = svn__apr_hash_index_key(hi);
+      const char *propname = apr_hash_this_key(hi);
       svn_string_t *old_value;
       svn_string_t *my_value;
       svn_string_t *their_value;
@@ -2667,7 +2666,7 @@ resolve_prop_conflict_on_node(svn_boolea
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *propname = svn__apr_hash_index_key(hi);
+          const char *propname = apr_hash_this_key(hi);
           svn_string_t *new_value = NULL;
 
           new_value = svn_hash_gets(resolve_from, propname);
@@ -3170,7 +3169,7 @@ svn_wc__resolve_conflicts(svn_wc_context
           hi && !err;
           hi = apr_hash_next(hi))
         {
-          tc_abspath = svn__apr_hash_index_key(hi);
+          tc_abspath = apr_hash_this_key(hi);
           svn_pool_clear(iterpool);
 
           svn_hash_sets(cswb.resolve_later, tc_abspath, NULL);

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c Thu Jul 31 \
10:44:15 2014 @@ -367,8 +367,8 @@ copy_versioned_dir(svn_wc__db_t *db,
       if (cancel_func)
         SVN_ERR(cancel_func(cancel_baton));
 
-      child_name = svn__apr_hash_index_key(hi);
-      info = svn__apr_hash_index_val(hi);
+      child_name = apr_hash_this_key(hi);
+      info = apr_hash_this_val(hi);
       child_src_abspath = svn_dirent_join(src_abspath, child_name, iterpool);
       child_dst_abspath = svn_dirent_join(dst_abspath, child_name, iterpool);
 
@@ -468,7 +468,7 @@ copy_versioned_dir(svn_wc__db_t *db,
       for (hi = apr_hash_first(scratch_pool, disk_children); hi;
            hi = apr_hash_next(hi))
         {
-          const char *name = svn__apr_hash_index_key(hi);
+          const char *name = apr_hash_this_key(hi);
           const char *unver_src_abspath, *unver_dst_abspath;
           svn_skel_t *work_item;
 
@@ -950,8 +950,8 @@ remove_all_conflict_markers(svn_wc__db_t
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *name = svn__apr_hash_index_key(hi);
-      struct svn_wc__db_info_t *info = svn__apr_hash_index_val(hi);
+      const char *name = apr_hash_this_key(hi);
+      struct svn_wc__db_info_t *info = apr_hash_this_val(hi);
 
       if (info->conflicted)
         {

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/deprecated.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/deprecated.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/deprecated.c Thu \
Jul 31 10:44:15 2014 @@ -127,7 +127,7 @@ gather_traversal_info(svn_wc_context_t *
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *node_abspath = svn__apr_hash_index_key(hi);
+      const char *node_abspath = apr_hash_this_key(hi);
       const char *relpath;
 
       relpath = svn_dirent_join(path,
@@ -137,11 +137,11 @@ gather_traversal_info(svn_wc_context_t *
 
       if (gather_as_old)
         svn_hash_sets(traversal_info->externals_old, relpath,
-                      svn__apr_hash_index_val(hi));
+                      apr_hash_this_val(hi));
 
       if (gather_as_new)
         svn_hash_sets(traversal_info->externals_new, relpath,
-                      svn__apr_hash_index_val(hi));
+                      apr_hash_this_val(hi));
 
       svn_hash_sets(traversal_info->depths, relpath,
                     svn_hash_gets(ambient_depths, node_abspath));

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c Thu Jul \
31 10:44:15 2014 @@ -346,7 +346,7 @@ write_tree_conflicts(const char **confli
     {
       svn_skel_t *c_skel;
 
-      SVN_ERR(svn_wc__serialize_conflict(&c_skel, svn__apr_hash_index_val(hi),
+      SVN_ERR(svn_wc__serialize_conflict(&c_skel, apr_hash_this_val(hi),
                                          pool, pool));
       svn_skel__prepend(c_skel, skel);
     }
@@ -1342,7 +1342,7 @@ prune_deleted(apr_hash_t **entries_prune
       svn_boolean_t hidden;
 
       SVN_ERR(svn_wc__entry_is_hidden(&hidden,
-                                      svn__apr_hash_index_val(hi)));
+                                      apr_hash_this_val(hi)));
       if (hidden)
         break;
     }
@@ -1360,8 +1360,8 @@ prune_deleted(apr_hash_t **entries_prune
        hi;
        hi = apr_hash_next(hi))
     {
-      const void *key = svn__apr_hash_index_key(hi);
-      const svn_wc_entry_t *entry = svn__apr_hash_index_val(hi);
+      const void *key = apr_hash_this_key(hi);
+      const svn_wc_entry_t *entry = apr_hash_this_val(hi);
       svn_boolean_t hidden;
 
       SVN_ERR(svn_wc__entry_is_hidden(&hidden, entry));
@@ -2357,9 +2357,9 @@ write_actual_only_entries(apr_hash_t *tr
 
       actual_node = MAYBE_ALLOC(actual_node, scratch_pool);
       actual_node->wc_id = wc_id;
-      actual_node->local_relpath = svn__apr_hash_index_key(hi);
+      actual_node->local_relpath = apr_hash_this_key(hi);
       actual_node->parent_relpath = parent_relpath;
-      actual_node->tree_conflict_data = svn__apr_hash_index_val(hi);
+      actual_node->tree_conflict_data = apr_hash_this_val(hi);
 
       SVN_ERR(insert_actual_node(sdb, db, wri_abspath, actual_node,
                                  scratch_pool));
@@ -2417,8 +2417,8 @@ svn_wc__write_upgraded_entries(void **di
   for (hi = apr_hash_first(scratch_pool, entries); hi;
        hi = apr_hash_next(hi))
     {
-      const char *name = svn__apr_hash_index_key(hi);
-      const svn_wc_entry_t *this_entry = svn__apr_hash_index_val(hi);
+      const char *name = apr_hash_this_key(hi);
+      const svn_wc_entry_t *this_entry = apr_hash_this_val(hi);
       const char *child_abspath, *child_relpath;
       svn_wc__text_base_info_t *text_base_info
         = svn_hash_gets(text_bases_info, name);
@@ -2572,8 +2572,8 @@ walker_helper(const char *dirpath,
   /* Loop over each of the other entries. */
   for (hi = apr_hash_first(pool, entries); hi; hi = apr_hash_next(hi))
     {
-      const char *name = svn__apr_hash_index_key(hi);
-      const svn_wc_entry_t *current_entry = svn__apr_hash_index_val(hi);
+      const char *name = apr_hash_this_key(hi);
+      const svn_wc_entry_t *current_entry = apr_hash_this_val(hi);
       const char *entrypath;
       const char *entry_abspath;
       svn_boolean_t hidden;

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/info.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/info.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/info.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/info.c Thu Jul 31 \
10:44:15 2014 @@ -539,7 +539,7 @@ svn_wc__get_info(svn_wc_context_t *wc_ct
   for (hi = apr_hash_first(scratch_pool, fe_baton.tree_conflicts); hi;
        hi = apr_hash_next(hi))
     {
-      const char *this_abspath = svn__apr_hash_index_key(hi);
+      const char *this_abspath = apr_hash_this_key(hi);
       const svn_wc_conflict_description3_t *tree_conflict;
       svn_wc__info2_t *info;
       const apr_array_header_t *conflicts;

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/lock.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/lock.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/lock.c Thu Jul 31 \
10:44:15 2014 @@ -1313,8 +1313,8 @@ do_close(svn_wc_adm_access_t *adm_access
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *abspath = svn__apr_hash_index_key(hi);
-          svn_wc_adm_access_t *child = svn__apr_hash_index_val(hi);
+          const char *abspath = apr_hash_this_key(hi);
+          svn_wc_adm_access_t *child = apr_hash_this_val(hi);
           const char *path = child->path;
 
           if (IS_MISSING(child))

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/node.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/node.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/node.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/node.c Thu Jul 31 \
10:44:15 2014 @@ -387,8 +387,8 @@ walker_helper(svn_wc__db_t *db,
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *child_name = svn__apr_hash_index_key(hi);
-      struct svn_wc__db_walker_info_t *wi = svn__apr_hash_index_val(hi);
+      const char *child_name = apr_hash_this_key(hi);
+      struct svn_wc__db_walker_info_t *wi = apr_hash_this_val(hi);
       svn_node_kind_t child_kind = wi->kind;
       svn_wc__db_status_t child_status = wi->status;
       const char *child_abspath;

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/old-and-busted.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/old-and-busted.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/old-and-busted.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/old-and-busted.c \
Thu Jul 31 10:44:15 2014 @@ -1154,7 +1154,7 @@ resolve_to_defaults(apr_hash_t \
*entries,  /* Then use it to fill in missing information in other entries. */
   for (hi = apr_hash_first(pool, entries); hi; hi = apr_hash_next(hi))
     {
-      svn_wc_entry_t *this_entry = svn__apr_hash_index_val(hi);
+      svn_wc_entry_t *this_entry = apr_hash_this_val(hi);
 
       if (this_entry == default_entry)
         /* THIS_DIR already has all the information it can possibly

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c Thu Jul 31 \
10:44:15 2014 @@ -2055,8 +2055,8 @@ svn_wc__canonicalize_props(apr_hash_t **
   for (hi = apr_hash_first(scratch_pool, (apr_hash_t *)props); hi;
        hi = apr_hash_next(hi))
     {
-      const char *name = svn__apr_hash_index_key(hi);
-      const svn_string_t *value = svn__apr_hash_index_val(hi);
+      const char *name = apr_hash_this_key(hi);
+      const svn_string_t *value = apr_hash_this_val(hi);
 
       if (strcmp(name, SVN_PROP_MIME_TYPE) == 0)
         continue;

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/status.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/status.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/status.c Thu Jul \
31 10:44:15 2014 @@ -947,7 +947,7 @@ is_external_path(apr_hash_t *externals,
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *external_abspath = svn__apr_hash_index_key(hi);
+      const char *external_abspath = apr_hash_this_key(hi);
 
       if (svn_dirent_is_child(local_abspath, external_abspath, NULL))
         return TRUE;
@@ -1937,8 +1937,8 @@ handle_statii(struct edit_baton *eb,
   /* Loop over all the statii still in our hash, handling each one. */
   for (hi = apr_hash_first(pool, statii); hi; hi = apr_hash_next(hi))
     {
-      const char *local_abspath = svn__apr_hash_index_key(hi);
-      svn_wc_status3_t *status = svn__apr_hash_index_val(hi);
+      const char *local_abspath = apr_hash_this_key(hi);
+      svn_wc_status3_t *status = apr_hash_this_val(hi);
 
       /* Clear the subpool. */
       svn_pool_clear(iterpool);

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c
                
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c \
Thu Jul 31 10:44:15 2014 @@ -2615,7 +2615,7 @@ close_directory(void *dir_baton,
            hi != NULL;
            hi = apr_hash_next(hi))
         {
-          const char *propname = svn__apr_hash_index_key(hi);
+          const char *propname = apr_hash_this_key(hi);
           svn_prop_t *prop = apr_array_push(regular_prop_changes);
 
           /* Record a deletion for PROPNAME.  */
@@ -2720,11 +2720,11 @@ close_directory(void *dir_baton,
 
             svn_pool_clear(iterpool);
 
-            child_name = svn__apr_hash_index_key(hi);
+            child_name = apr_hash_this_key(hi);
             child_abspath = svn_dirent_join(db->local_abspath, child_name,
                                             iterpool);
 
-            dirent = svn__apr_hash_index_val(hi);
+            dirent = apr_hash_this_val(hi);
             child_kind = (dirent->kind == svn_node_dir)
                                         ? svn_node_dir
                                         : svn_node_file;
@@ -2787,10 +2787,9 @@ close_directory(void *dir_baton,
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *child = svn__apr_hash_index_key(hi);
+          const char *child = apr_hash_this_key(hi);
           const char *child_abspath, *child_relpath;
-          svn_node_kind_t kind = svn_node_kind_from_word(
-                                      svn__apr_hash_index_val(hi));
+          svn_node_kind_t kind = svn_node_kind_from_word(apr_hash_this_val(hi));
 
           svn_pool_clear(iterpool);
 

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/upgrade.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/upgrade.c?rev=1614851&r1=1614850&r2=1614851&view=diff
 ==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/upgrade.c \
                (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/upgrade.c Thu Jul \
31 10:44:15 2014 @@ -193,7 +193,7 @@ read_many_wcprops(apr_hash_t **all_wcpro
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *name = svn__apr_hash_index_key(hi);
+      const char *name = apr_hash_this_key(hi);
 
       svn_pool_clear(iterpool);
 
@@ -293,15 +293,15 @@ get_versioned_subdirs(apr_array_header_t
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *name = svn__apr_hash_index_key(hi);
-      const svn_wc_entry_t *entry = svn__apr_hash_index_val(hi);
+      const char *name = apr_hash_this_key(hi);
+      const svn_wc_entry_t *entry = apr_hash_this_val(hi);
       const char *child_abspath;
       svn_boolean_t hidden;
 
       /* skip "this dir"  */
       if (*name == '\0')
         {
-          this_dir = svn__apr_hash_index_val(hi);
+          this_dir = apr_hash_this_val(hi);
           continue;
         }
       else if (entry->kind != svn_node_dir)
@@ -612,13 +612,13 @@ ensure_repos_info(svn_wc_entry_t *entry,
       for (hi = apr_hash_first(scratch_pool, repos_cache);
            hi; hi = apr_hash_next(hi))
         {
-          if (svn_uri__is_ancestor(svn__apr_hash_index_key(hi), entry->url))
+          if (svn_uri__is_ancestor(apr_hash_this_key(hi), entry->url))
             {
               if (!entry->repos)
-                entry->repos = svn__apr_hash_index_key(hi);
+                entry->repos = apr_hash_this_key(hi);
 
               if (!entry->uuid)
-                entry->uuid = svn__apr_hash_index_val(hi);
+                entry->uuid = apr_hash_this_val(hi);
 
               return SVN_NO_ERROR;
             }
@@ -727,8 +727,7 @@ migrate_single_tree_conflict_data(svn_sq
        hi;
        hi = apr_hash_next(hi))
     {
-      const svn_wc_conflict_description3_t *conflict =
-          svn__apr_hash_index_val(hi);
+      const svn_wc_conflict_description3_t *conflict = apr_hash_this_val(hi);
       const char *conflict_relpath;
       const char *conflict_data;
       svn_sqlite__stmt_t *stmt;
@@ -1017,7 +1016,7 @@ migrate_text_bases(apr_hash_t **text_bas
   for (hi = apr_hash_first(scratch_pool, dirents); hi;
        hi = apr_hash_next(hi))
     {
-      const char *text_base_basename = svn__apr_hash_index_key(hi);
+      const char *text_base_basename = apr_hash_this_key(hi);
       svn_checksum_t *md5_checksum;
       svn_checksum_t *sha1_checksum;
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic