You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2013/03/23 16:44:38 UTC

svn commit: r1460176 [1/3] - in /subversion/trunk/subversion: bindings/swig/perl/libsvn_swig_perl/ bindings/swig/python/libsvn_swig_py/ bindings/swig/ruby/libsvn_swig_ruby/ libsvn_auth_gnome_keyring/ libsvn_client/ libsvn_delta/ libsvn_diff/ libsvn_fs/...

Author: danielsh
Date: Sat Mar 23 15:44:36 2013
New Revision: 1460176

URL: http://svn.apache.org/r1460176
Log:
Use svn_hash_gets and svn_hash_sets.

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
* subversion/libsvn_client/commit.c
* subversion/libsvn_delta/compat.c
* subversion/libsvn_delta/editor.c
* subversion/libsvn_diff/parse-diff.c
* subversion/libsvn_diff/util.c
* subversion/libsvn_fs/access.c
* subversion/libsvn_fs_base/bdb/changes-table.c
* subversion/libsvn_fs_base/dag.c
* subversion/libsvn_fs_base/fs.c
* subversion/libsvn_fs_base/lock.c
* subversion/libsvn_fs_base/revs-txns.c
* subversion/libsvn_fs_base/tree.c
* subversion/libsvn_fs_fs/fs_fs.c
* subversion/libsvn_fs_fs/lock.c
* subversion/libsvn_fs_fs/temp_serializer.c
* subversion/libsvn_fs_fs/tree.c
* subversion/libsvn_fs_util/fs-util.c
* subversion/libsvn_ra/compat.c
* subversion/libsvn_ra/deprecated.c
* subversion/libsvn_ra/ra_loader.c
* subversion/libsvn_ra_local/ra_plugin.c
* subversion/libsvn_ra_serf/blame.c
* subversion/libsvn_ra_serf/blncache.c
* subversion/libsvn_ra_serf/commit.c
* subversion/libsvn_ra_serf/getlocations.c
* subversion/libsvn_ra_serf/getlocationsegments.c
* subversion/libsvn_ra_serf/getlocks.c
* subversion/libsvn_ra_serf/inherited_props.c
* subversion/libsvn_ra_serf/log.c
* subversion/libsvn_ra_serf/merge.c
* subversion/libsvn_ra_serf/mergeinfo.c
* subversion/libsvn_ra_serf/options.c
* subversion/libsvn_ra_serf/property.c
* subversion/libsvn_ra_serf/serf.c
* subversion/libsvn_ra_serf/update.c
* subversion/libsvn_ra_serf/util.c
* subversion/libsvn_ra_serf/xml.c
* subversion/libsvn_ra_svn/client.c
* subversion/libsvn_ra_svn/editorp.c
* subversion/libsvn_ra_svn/marshal.c
* subversion/mod_dav_svn/activity.c
* subversion/mod_dav_svn/lock.c
* subversion/mod_dav_svn/merge.c
* subversion/mod_dav_svn/reports/update.c
* subversion/mod_dav_svn/repos.c
* subversion/mod_dav_svn/version.c
* subversion/svn/cl-conflicts.c
* subversion/svn/commit-cmd.c
* subversion/svn/conflict-callbacks.c
* subversion/svn/help-cmd.c
* subversion/svn/propedit-cmd.c
* subversion/svn/propget-cmd.c
* subversion/svn/status-cmd.c
* subversion/svn/status.c
* subversion/svn/svn.c
* subversion/svn/util.c
* subversion/svnadmin/svnadmin.c
* subversion/svndumpfilter/svndumpfilter.c
* subversion/svnlook/svnlook.c
* subversion/svnmucc/svnmucc.c
* subversion/svnrdump/dump_editor.c
* subversion/svnrdump/load_editor.c
* subversion/svnrdump/svnrdump.c
* subversion/svnrdump/util.c
* subversion/svnserve/serve.c
* subversion/svnsync/svnsync.c
* subversion/svnsync/sync.c

Modified:
    subversion/trunk/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
    subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
    subversion/trunk/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
    subversion/trunk/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
    subversion/trunk/subversion/libsvn_client/commit.c
    subversion/trunk/subversion/libsvn_delta/compat.c
    subversion/trunk/subversion/libsvn_delta/editor.c
    subversion/trunk/subversion/libsvn_diff/parse-diff.c
    subversion/trunk/subversion/libsvn_diff/util.c
    subversion/trunk/subversion/libsvn_fs/access.c
    subversion/trunk/subversion/libsvn_fs_base/bdb/changes-table.c
    subversion/trunk/subversion/libsvn_fs_base/dag.c
    subversion/trunk/subversion/libsvn_fs_base/fs.c
    subversion/trunk/subversion/libsvn_fs_base/lock.c
    subversion/trunk/subversion/libsvn_fs_base/revs-txns.c
    subversion/trunk/subversion/libsvn_fs_base/tree.c
    subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
    subversion/trunk/subversion/libsvn_fs_fs/lock.c
    subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.c
    subversion/trunk/subversion/libsvn_fs_fs/tree.c
    subversion/trunk/subversion/libsvn_fs_util/fs-util.c
    subversion/trunk/subversion/libsvn_ra/compat.c
    subversion/trunk/subversion/libsvn_ra/deprecated.c
    subversion/trunk/subversion/libsvn_ra/ra_loader.c
    subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c
    subversion/trunk/subversion/libsvn_ra_serf/blame.c
    subversion/trunk/subversion/libsvn_ra_serf/blncache.c
    subversion/trunk/subversion/libsvn_ra_serf/commit.c
    subversion/trunk/subversion/libsvn_ra_serf/getlocations.c
    subversion/trunk/subversion/libsvn_ra_serf/getlocationsegments.c
    subversion/trunk/subversion/libsvn_ra_serf/getlocks.c
    subversion/trunk/subversion/libsvn_ra_serf/inherited_props.c
    subversion/trunk/subversion/libsvn_ra_serf/log.c
    subversion/trunk/subversion/libsvn_ra_serf/merge.c
    subversion/trunk/subversion/libsvn_ra_serf/mergeinfo.c
    subversion/trunk/subversion/libsvn_ra_serf/options.c
    subversion/trunk/subversion/libsvn_ra_serf/property.c
    subversion/trunk/subversion/libsvn_ra_serf/serf.c
    subversion/trunk/subversion/libsvn_ra_serf/update.c
    subversion/trunk/subversion/libsvn_ra_serf/util.c
    subversion/trunk/subversion/libsvn_ra_serf/xml.c
    subversion/trunk/subversion/libsvn_ra_svn/client.c
    subversion/trunk/subversion/libsvn_ra_svn/editorp.c
    subversion/trunk/subversion/libsvn_ra_svn/marshal.c
    subversion/trunk/subversion/mod_dav_svn/activity.c
    subversion/trunk/subversion/mod_dav_svn/lock.c
    subversion/trunk/subversion/mod_dav_svn/merge.c
    subversion/trunk/subversion/mod_dav_svn/reports/update.c
    subversion/trunk/subversion/mod_dav_svn/repos.c
    subversion/trunk/subversion/mod_dav_svn/version.c
    subversion/trunk/subversion/svn/cl-conflicts.c
    subversion/trunk/subversion/svn/commit-cmd.c
    subversion/trunk/subversion/svn/conflict-callbacks.c
    subversion/trunk/subversion/svn/help-cmd.c
    subversion/trunk/subversion/svn/propedit-cmd.c
    subversion/trunk/subversion/svn/propget-cmd.c
    subversion/trunk/subversion/svn/status-cmd.c
    subversion/trunk/subversion/svn/status.c
    subversion/trunk/subversion/svn/svn.c
    subversion/trunk/subversion/svn/util.c
    subversion/trunk/subversion/svnadmin/svnadmin.c
    subversion/trunk/subversion/svndumpfilter/svndumpfilter.c
    subversion/trunk/subversion/svnlook/svnlook.c
    subversion/trunk/subversion/svnmucc/svnmucc.c
    subversion/trunk/subversion/svnrdump/dump_editor.c
    subversion/trunk/subversion/svnrdump/load_editor.c
    subversion/trunk/subversion/svnrdump/svnrdump.c
    subversion/trunk/subversion/svnrdump/util.c
    subversion/trunk/subversion/svnserve/serve.c
    subversion/trunk/subversion/svnsync/svnsync.c
    subversion/trunk/subversion/svnsync/sync.c

Modified: subversion/trunk/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/trunk/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Sat Mar 23 15:44:36 2013
@@ -34,6 +34,7 @@
 #include <io.h>
 #endif
 
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_opt.h"
 #include "svn_time.h"
@@ -117,7 +118,7 @@ static apr_hash_t *svn_swig_pl_to_hash(S
     while (cnt--) {
 	SV* item = hv_iternextsv(h, &key, &retlen);
 	void *val = cv(item, ctx, pool);
-	apr_hash_set(hash, key, APR_HASH_KEY_STRING, val);
+	svn_hash_sets(hash, key, val);
     }
 
     return hash;

Modified: subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original)
+++ subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Sat Mar 23 15:44:36 2013
@@ -960,7 +960,7 @@ apr_hash_t *svn_swig_py_stringhash_from_
           Py_DECREF(keys);
           return NULL;
         }
-      apr_hash_set(hash, propname, APR_HASH_KEY_STRING, propval);
+      svn_hash_sets(hash, propname, propval);
     }
   Py_DECREF(keys);
   return hash;
@@ -1003,7 +1003,7 @@ apr_hash_t *svn_swig_py_mergeinfo_from_d
           Py_DECREF(keys);
           return NULL;
         }
-      apr_hash_set(hash, pathname, APR_HASH_KEY_STRING, ranges);
+      svn_hash_sets(hash, pathname, ranges);
     }
   Py_DECREF(keys);
   return hash;
@@ -1080,7 +1080,7 @@ apr_hash_t *svn_swig_py_prophash_from_di
           Py_DECREF(keys);
           return NULL;
         }
-      apr_hash_set(hash, propname, APR_HASH_KEY_STRING, propval);
+      svn_hash_sets(hash, propname, propval);
     }
   Py_DECREF(keys);
   return hash;
@@ -1133,7 +1133,7 @@ apr_hash_t *svn_swig_py_path_revs_hash_f
           return NULL;
         }
 
-      apr_hash_set(hash, path, APR_HASH_KEY_STRING, revnum);
+      svn_hash_sets(hash, path, revnum);
     }
   Py_DECREF(keys);
   return hash;
@@ -1182,7 +1182,7 @@ apr_hash_t *svn_swig_py_struct_ptr_hash_
           Py_DECREF(keys);
           return NULL;
         }
-      apr_hash_set(hash, c_key, APR_HASH_KEY_STRING, struct_ptr);
+      svn_hash_sets(hash, c_key, struct_ptr);
     }
   Py_DECREF(keys);
   return hash;

Modified: subversion/trunk/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (original)
+++ subversion/trunk/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c Sat Mar 23 15:44:36 2013
@@ -53,6 +53,7 @@
 #include <locale.h>
 #include <math.h>
 
+#include "svn_hash.h"
 #include "svn_nls.h"
 #include "svn_pools.h"
 #include "svn_props.h"
@@ -1516,10 +1517,8 @@ r2c_hash_i(VALUE key, VALUE value, hash_
 {
   if (key != Qundef) {
     void *val = data->func(value, data->ctx, data->pool);
-    apr_hash_set(data->apr_hash,
-                 apr_pstrdup(data->pool, StringValuePtr(key)),
-                 APR_HASH_KEY_STRING,
-                 val);
+    svn_hash_sets(data->apr_hash, apr_pstrdup(data->pool, StringValuePtr(key)),
+                  val);
   }
   return ST_CONTINUE;
 }

Modified: subversion/trunk/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c (original)
+++ subversion/trunk/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c Sat Mar 23 15:44:36 2013
@@ -32,6 +32,7 @@
 #include "svn_auth.h"
 #include "svn_config.h"
 #include "svn_error.h"
+#include "svn_hash.h"
 #include "svn_pools.h"
 
 #include "private/svn_auth_private.h"
@@ -243,13 +244,11 @@ ensure_gnome_keyring_is_unlocked(svn_boo
   if (! non_interactive)
     {
       svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
-        apr_hash_get(parameters,
-                     SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
-                     APR_HASH_KEY_STRING);
+        svn_hash_gets(parameters,
+                      SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC);
       void *unlock_prompt_baton =
-        apr_hash_get(parameters,
-                     SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
-                     APR_HASH_KEY_STRING);
+        svn_hash_gets(parameters,
+                      SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON);
 
       char *keyring_password;
 
@@ -298,9 +297,7 @@ password_get_gnome_keyring(svn_boolean_t
 
   SVN_ERR(ensure_gnome_keyring_is_unlocked(non_interactive, parameters, pool));
 
-  if (! apr_hash_get(parameters,
-                     "gnome-keyring-opening-failed",
-                     APR_HASH_KEY_STRING))
+  if (! svn_hash_gets(parameters, "gnome-keyring-opening-failed"))
     {
       result = gnome_keyring_find_network_password_sync(username, realmstring,
                                                         NULL, NULL, NULL, NULL,
@@ -330,10 +327,7 @@ password_get_gnome_keyring(svn_boolean_t
     }
   else
     {
-      apr_hash_set(parameters,
-                   "gnome-keyring-opening-failed",
-                   APR_HASH_KEY_STRING,
-                   "");
+      svn_hash_sets(parameters, "gnome-keyring-opening-failed", "");
     }
 
   return SVN_NO_ERROR;
@@ -358,9 +352,7 @@ password_set_gnome_keyring(svn_boolean_t
 
   SVN_ERR(ensure_gnome_keyring_is_unlocked(non_interactive, parameters, pool));
 
-  if (! apr_hash_get(parameters,
-                     "gnome-keyring-opening-failed",
-                     APR_HASH_KEY_STRING))
+  if (! svn_hash_gets(parameters, "gnome-keyring-opening-failed"))
     {
       result = gnome_keyring_set_network_password_sync(NULL, /* default keyring */
                                                        username, realmstring,
@@ -374,10 +366,7 @@ password_set_gnome_keyring(svn_boolean_t
     }
   if (result != GNOME_KEYRING_RESULT_OK)
     {
-      apr_hash_set(parameters,
-                   "gnome-keyring-opening-failed",
-                   APR_HASH_KEY_STRING,
-                   "");
+      svn_hash_sets(parameters, "gnome-keyring-opening-failed", "");
     }
 
   *done = (result == GNOME_KEYRING_RESULT_OK);

Modified: subversion/trunk/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/commit.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/commit.c (original)
+++ subversion/trunk/subversion/libsvn_client/commit.c Sat Mar 23 15:44:36 2013
@@ -866,7 +866,8 @@ svn_client_commit6(const apr_array_heade
 
           if (moved_to_abspath && copy_op_root_abspath &&
               strcmp(moved_to_abspath, copy_op_root_abspath) == 0 &&
-              svn_hash_gets(committables->by_path, copy_op_root_abspath) == NULL)
+              svn_hash_gets(committables->by_path, copy_op_root_abspath)
+              == NULL)
             {
               cmt_err = svn_error_createf(
                           SVN_ERR_ILLEGAL_TARGET, NULL,

Modified: subversion/trunk/subversion/libsvn_delta/compat.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_delta/compat.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_delta/compat.c (original)
+++ subversion/trunk/subversion/libsvn_delta/compat.c Sat Mar 23 15:44:36 2013
@@ -205,8 +205,7 @@ static struct change_node *
 locate_change(struct ev2_edit_baton *eb,
               const char *relpath)
 {
-  struct change_node *change = apr_hash_get(eb->changes, relpath,
-                                            APR_HASH_KEY_STRING);
+  struct change_node *change = svn_hash_gets(eb->changes, relpath);
 
   if (change != NULL)
     return change;
@@ -220,7 +219,7 @@ locate_change(struct ev2_edit_baton *eb,
   change->changing = SVN_INVALID_REVNUM;
   change->deleting = SVN_INVALID_REVNUM;
 
-  apr_hash_set(eb->changes, relpath, APR_HASH_KEY_STRING, change);
+  svn_hash_sets(eb->changes, relpath, change);
 
   return change;
 }
@@ -270,11 +269,11 @@ apply_propedit(struct ev2_edit_baton *eb
     }
 
   if (value == NULL)
-    apr_hash_set(change->props, name, APR_HASH_KEY_STRING, NULL);
+    svn_hash_sets(change->props, name, NULL);
   else
-    apr_hash_set(change->props,
-                 apr_pstrdup(eb->edit_pool, name), APR_HASH_KEY_STRING,
-                 svn_string_dup(value, eb->edit_pool));
+    svn_hash_sets(change->props,
+                  apr_pstrdup(eb->edit_pool, name),
+                  svn_string_dup(value, eb->edit_pool));
 
   return SVN_NO_ERROR;
 }
@@ -462,9 +461,8 @@ run_ev2_actions(struct ev2_edit_baton *e
       const char *repos_relpath = APR_ARRAY_IDX(eb->path_order,
                                                 eb->paths_processed,
                                                 const char *);
-      const struct change_node *change = apr_hash_get(eb->changes,
-                                                      repos_relpath,
-                                                      APR_HASH_KEY_STRING);
+      const struct change_node *change = svn_hash_gets(eb->changes,
+                                                       repos_relpath);
 
       svn_pool_clear(iterpool);
 
@@ -1037,7 +1035,7 @@ insert_change(const char *relpath,
   apr_pool_t *result_pool;
   struct change_node *change;
 
-  change = apr_hash_get(changes, relpath, APR_HASH_KEY_STRING);
+  change = svn_hash_gets(changes, relpath);
   if (change != NULL)
     return change;
 
@@ -1048,9 +1046,7 @@ insert_change(const char *relpath,
   change->changing = SVN_INVALID_REVNUM;
   change->deleting = SVN_INVALID_REVNUM;
 
-  apr_hash_set(changes,
-               apr_pstrdup(result_pool, relpath), APR_HASH_KEY_STRING,
-               change);
+  svn_hash_sets(changes, apr_pstrdup(result_pool, relpath), change);
 
   return change;
 }
@@ -1574,7 +1570,7 @@ apply_change(void **dir_baton,
   *dir_baton = NULL;
 
   relpath = svn_relpath_join(eb->base_relpath, ev1_relpath, scratch_pool);
-  change = apr_hash_get(eb->changes, relpath, APR_HASH_KEY_STRING);
+  change = svn_hash_gets(eb->changes, relpath);
 
   /* The callback should only be called for paths in CHANGES.  */
   SVN_ERR_ASSERT(change != NULL);

Modified: subversion/trunk/subversion/libsvn_delta/editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_delta/editor.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_delta/editor.c (original)
+++ subversion/trunk/subversion/libsvn_delta/editor.c Sat Mar 23 15:44:36 2013
@@ -110,19 +110,16 @@ static const int marker_added_dir = 0;
 #define SHOULD_NOT_BE_FINISHED(editor)  SVN_ERR_ASSERT(!(editor)->finished)
 
 #define CLEAR_INCOMPLETE(editor, relpath) \
-  apr_hash_set((editor)->pending_incomplete_children, relpath,  \
-               APR_HASH_KEY_STRING, NULL);
+  svn_hash_sets((editor)->pending_incomplete_children, relpath, NULL);
 
 #define MARK_RELPATH(editor, relpath, value) \
-  apr_hash_set((editor)->completed_nodes, \
-               apr_pstrdup((editor)->state_pool, relpath), \
-               APR_HASH_KEY_STRING, value)
+  svn_hash_sets((editor)->completed_nodes, \
+                apr_pstrdup((editor)->state_pool, relpath), value)
 
 #define MARK_COMPLETED(editor, relpath) \
   MARK_RELPATH(editor, relpath, MARKER_DONE)
 #define SHOULD_NOT_BE_COMPLETED(editor, relpath) \
-  SVN_ERR_ASSERT(apr_hash_get((editor)->completed_nodes, relpath, \
-                              APR_HASH_KEY_STRING) == NULL)
+  SVN_ERR_ASSERT(svn_hash_gets((editor)->completed_nodes, relpath) == NULL)
 
 #define MARK_ALLOW_ADD(editor, relpath) \
   MARK_RELPATH(editor, relpath, MARKER_ALLOW_ADD)
@@ -148,10 +145,10 @@ static const int marker_added_dir = 0;
 /* If the parent is MARKER_ALLOW_ADD, then it has been moved-away, and we
    know it does not exist. All other cases: it might exist.  */
 #define VERIFY_PARENT_MAY_EXIST(editor, relpath) \
-  SVN_ERR_ASSERT(apr_hash_get((editor)->completed_nodes, \
-                              svn_relpath_dirname(relpath, \
-                                                  (editor)->scratch_pool), \
-                              APR_HASH_KEY_STRING) != MARKER_ALLOW_ADD)
+  SVN_ERR_ASSERT(svn_hash_gets((editor)->completed_nodes, \
+                               svn_relpath_dirname(relpath, \
+                                                   (editor)->scratch_pool)) \
+                 != MARKER_ALLOW_ADD)
 
 /* If the parent is MARKER_ADDED_DIR, then we should not be deleting
    children(*). If the parent is MARKER_ALLOW_ADD, then it has been
@@ -175,8 +172,7 @@ allow_either(const svn_editor_t *editor,
              const void *marker1,
              const void *marker2)
 {
-  void *value = apr_hash_get(editor->completed_nodes, relpath,
-                             APR_HASH_KEY_STRING);
+  void *value = svn_hash_gets(editor->completed_nodes, relpath);
   return value == marker1 || value == marker2;
 }
 
@@ -187,14 +183,13 @@ check_unknown_child(const svn_editor_t *
   const char *parent;
 
   /* If we already know about the new child, then exit early.  */
-  if (apr_hash_get(editor->pending_incomplete_children, relpath,
-                   APR_HASH_KEY_STRING) != NULL)
+  if (svn_hash_gets(editor->pending_incomplete_children, relpath) != NULL)
     return TRUE;
 
   parent = svn_relpath_dirname(relpath, editor->scratch_pool);
 
   /* Was this parent created via svn_editor_add_directory() ?  */
-  if (apr_hash_get(editor->completed_nodes, parent, APR_HASH_KEY_STRING)
+  if (svn_hash_gets(editor->completed_nodes, parent)
       == MARKER_ADDED_DIR)
     {
       /* Whoops. This child should have been listed in that add call,
@@ -211,8 +206,7 @@ mark_parent_stable(const svn_editor_t *e
                    const char *relpath)
 {
   const char *parent = svn_relpath_dirname(relpath, editor->scratch_pool);
-  const void *marker = apr_hash_get(editor->completed_nodes,
-                                    parent, APR_HASH_KEY_STRING);
+  const void *marker = svn_hash_gets(editor->completed_nodes, parent);
 
   /* If RELPATH has already been marked (to disallow adds, or that it
      has been fully-completed), then do nothing.  */
@@ -511,8 +505,7 @@ svn_editor_add_directory(svn_editor_t *e
         const char *child = svn_relpath_join(relpath, child_basename,
                                              editor->state_pool);
 
-        apr_hash_set(editor->pending_incomplete_children, child,
-                     APR_HASH_KEY_STRING, "");
+        svn_hash_sets(editor->pending_incomplete_children, child, "");
       }
   }
 #endif

Modified: subversion/trunk/subversion/libsvn_diff/parse-diff.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_diff/parse-diff.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_diff/parse-diff.c (original)
+++ subversion/trunk/subversion/libsvn_diff/parse-diff.c Sat Mar 23 15:44:36 2013
@@ -25,6 +25,7 @@
 #include <stddef.h>
 #include <string.h>
 
+#include "svn_hash.h"
 #include "svn_types.h"
 #include "svn_error.h"
 #include "svn_io.h"
@@ -1110,8 +1111,7 @@ add_property_hunk(svn_patch_t *patch, co
 {
   svn_prop_patch_t *prop_patch;
 
-  prop_patch = apr_hash_get(patch->prop_patches, prop_name,
-                            APR_HASH_KEY_STRING);
+  prop_patch = svn_hash_gets(patch->prop_patches, prop_name);
 
   if (! prop_patch)
     {
@@ -1121,8 +1121,7 @@ add_property_hunk(svn_patch_t *patch, co
       prop_patch->hunks = apr_array_make(result_pool, 1,
                                          sizeof(svn_diff_hunk_t *));
 
-      apr_hash_set(patch->prop_patches, prop_name, APR_HASH_KEY_STRING,
-                   prop_patch);
+      svn_hash_sets(patch->prop_patches, prop_name, prop_patch);
     }
 
   APR_ARRAY_PUSH(prop_patch->hunks, svn_diff_hunk_t *) = hunk;

Modified: subversion/trunk/subversion/libsvn_diff/util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_diff/util.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_diff/util.c (original)
+++ subversion/trunk/subversion/libsvn_diff/util.c Sat Mar 23 15:44:36 2013
@@ -25,6 +25,7 @@
 #include <apr.h>
 #include <apr_general.h>
 
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_dirent_uri.h"
 #include "svn_props.h"
@@ -504,8 +505,7 @@ svn_diff__display_prop_diffs(svn_stream_
         = &APR_ARRAY_IDX(propchanges, i, svn_prop_t);
 
       if (original_props)
-        original_value = apr_hash_get(original_props,
-                                      propchange->name, APR_HASH_KEY_STRING);
+        original_value = svn_hash_gets(original_props, propchange->name);
       else
         original_value = NULL;
 

Modified: subversion/trunk/subversion/libsvn_fs/access.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs/access.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs/access.c (original)
+++ subversion/trunk/subversion/libsvn_fs/access.c Sat Mar 23 15:44:36 2013
@@ -87,8 +87,7 @@ svn_fs_access_add_lock_token2(svn_fs_acc
                               const char *path,
                               const char *token)
 {
-  apr_hash_set(access_ctx->lock_tokens,
-               token, APR_HASH_KEY_STRING, path);
+  svn_hash_sets(access_ctx->lock_tokens, token, path);
   return SVN_NO_ERROR;
 }
 

Modified: subversion/trunk/subversion/libsvn_fs_base/bdb/changes-table.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/bdb/changes-table.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_base/bdb/changes-table.c (original)
+++ subversion/trunk/subversion/libsvn_fs_base/bdb/changes-table.c Sat Mar 23 15:44:36 2013
@@ -133,7 +133,7 @@ fold_change(apr_hash_t *changes,
   svn_fs_path_change2_t *old_change, *new_change;
   const char *path;
 
-  if ((old_change = apr_hash_get(changes, change->path, APR_HASH_KEY_STRING)))
+  if ((old_change = svn_hash_gets(changes, change->path)))
     {
       /* This path already exists in the hash, so we have to merge
          this change into the already existing one. */
@@ -245,7 +245,7 @@ fold_change(apr_hash_t *changes,
     }
 
   /* Add (or update) this path. */
-  apr_hash_set(changes, path, APR_HASH_KEY_STRING, new_change);
+  svn_hash_sets(changes, path, new_change);
 
   return SVN_NO_ERROR;
 }

Modified: subversion/trunk/subversion/libsvn_fs_base/dag.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/dag.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_base/dag.c (original)
+++ subversion/trunk/subversion/libsvn_fs_base/dag.c Sat Mar 23 15:44:36 2013
@@ -350,7 +350,7 @@ dir_entry_id_from_node(const svn_fs_id_t
 
   SVN_ERR(svn_fs_base__dag_dir_entries(&entries, parent, trail, pool));
   if (entries)
-    dirent = apr_hash_get(entries, name, APR_HASH_KEY_STRING);
+    dirent = svn_hash_gets(entries, name);
   else
     dirent = NULL;
 
@@ -421,7 +421,7 @@ set_entry(dag_node_t *parent,
     entries = apr_hash_make(pool);
 
   /* Now, add our new entry to the entries list. */
-  apr_hash_set(entries, name, APR_HASH_KEY_STRING, id);
+  svn_hash_sets(entries, name, id);
 
   /* Finally, replace the old entries list with the new one. */
   SVN_ERR(svn_fs_base__unparse_entries_skel(&entries_skel, entries,
@@ -910,7 +910,7 @@ svn_fs_base__dag_delete(dag_node_t *pare
 
   /* Find NAME in the ENTRIES skel.  */
   if (entries)
-    id = apr_hash_get(entries, name, APR_HASH_KEY_STRING);
+    id = svn_hash_gets(entries, name);
 
   /* If we never found ID in ENTRIES (perhaps because there are no
      ENTRIES, perhaps because ID just isn't in the existing ENTRIES
@@ -929,7 +929,7 @@ svn_fs_base__dag_delete(dag_node_t *pare
                                              trail, pool));
 
   /* Remove this entry from its parent's entries list. */
-  apr_hash_set(entries, name, APR_HASH_KEY_STRING, NULL);
+  svn_hash_sets(entries, name, NULL);
 
   /* Replace the old entries list with the new one. */
   {
@@ -1593,12 +1593,11 @@ svn_fs_base__dag_commit_txn(svn_revnum_t
   *new_rev = SVN_INVALID_REVNUM;
   SVN_ERR(svn_fs_bdb__put_rev(new_rev, fs, &revision, trail, pool));
 
-  if (apr_hash_get(txnprops, SVN_FS__PROP_TXN_CHECK_OOD, APR_HASH_KEY_STRING))
+  if (svn_hash_gets(txnprops, SVN_FS__PROP_TXN_CHECK_OOD))
     SVN_ERR(svn_fs_base__set_txn_prop
             (fs, txn_id, SVN_FS__PROP_TXN_CHECK_OOD, NULL, trail, pool));
 
-  if (apr_hash_get(txnprops, SVN_FS__PROP_TXN_CHECK_LOCKS,
-                   APR_HASH_KEY_STRING))
+  if (svn_hash_gets(txnprops, SVN_FS__PROP_TXN_CHECK_LOCKS))
     SVN_ERR(svn_fs_base__set_txn_prop
             (fs, txn_id, SVN_FS__PROP_TXN_CHECK_LOCKS, NULL, trail, pool));
 

Modified: subversion/trunk/subversion/libsvn_fs_base/fs.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/fs.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_base/fs.c (original)
+++ subversion/trunk/subversion/libsvn_fs_base/fs.c Sat Mar 23 15:44:36 2013
@@ -28,6 +28,7 @@
 #include <apr_pools.h>
 #include <apr_file_io.h>
 
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_fs.h"
 #include "svn_path.h"
@@ -446,9 +447,7 @@ bdb_write_config(svn_fs_t *fs)
 
       if (fs->config)
         {
-          value = apr_hash_get(fs->config,
-                               dbconfig_options[i].config_key,
-                               APR_HASH_KEY_STRING);
+          value = svn_hash_gets(fs->config, dbconfig_options[i].config_key);
         }
 
       SVN_ERR(svn_io_file_write_full(dbconfig_file,
@@ -684,14 +683,11 @@ base_create(svn_fs_t *fs, const char *pa
   /* See if compatibility with older versions was explicitly requested. */
   if (fs->config)
     {
-      if (apr_hash_get(fs->config, SVN_FS_CONFIG_PRE_1_4_COMPATIBLE,
-                                   APR_HASH_KEY_STRING))
+      if (svn_hash_gets(fs->config, SVN_FS_CONFIG_PRE_1_4_COMPATIBLE))
         format = 1;
-      else if (apr_hash_get(fs->config, SVN_FS_CONFIG_PRE_1_5_COMPATIBLE,
-                                        APR_HASH_KEY_STRING))
+      else if (svn_hash_gets(fs->config, SVN_FS_CONFIG_PRE_1_5_COMPATIBLE))
         format = 2;
-      else if (apr_hash_get(fs->config, SVN_FS_CONFIG_PRE_1_6_COMPATIBLE,
-                                        APR_HASH_KEY_STRING))
+      else if (svn_hash_gets(fs->config, SVN_FS_CONFIG_PRE_1_6_COMPATIBLE))
         format = 3;
     }
 

Modified: subversion/trunk/subversion/libsvn_fs_base/lock.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/lock.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_base/lock.c (original)
+++ subversion/trunk/subversion/libsvn_fs_base/lock.c Sat Mar 23 15:44:36 2013
@@ -21,6 +21,7 @@
  */
 
 
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_error.h"
 #include "svn_fs.h"
@@ -541,8 +542,7 @@ verify_lock(svn_fs_t *fs,
        _("User '%s' does not own lock on path '%s' (currently locked by '%s')"),
        fs->access_ctx->username, lock->path, lock->owner);
 
-  else if (apr_hash_get(fs->access_ctx->lock_tokens, lock->token,
-                        APR_HASH_KEY_STRING) == NULL)
+  else if (svn_hash_gets(fs->access_ctx->lock_tokens, lock->token) == NULL)
     return svn_error_createf
       (SVN_ERR_FS_BAD_LOCK_TOKEN, NULL,
        _("Cannot verify lock on path '%s'; no matching lock-token available"),

Modified: subversion/trunk/subversion/libsvn_fs_base/revs-txns.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/revs-txns.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_base/revs-txns.c (original)
+++ subversion/trunk/subversion/libsvn_fs_base/revs-txns.c Sat Mar 23 15:44:36 2013
@@ -230,7 +230,7 @@ svn_fs_base__revision_prop(svn_string_t 
                                  FALSE, pool));
 
   /* And then the prop from that list (if there was a list). */
-  *value_p = apr_hash_get(table, propname, APR_HASH_KEY_STRING);
+  *value_p = svn_hash_gets(table, propname);
 
   return SVN_NO_ERROR;
 }
@@ -262,8 +262,7 @@ svn_fs_base__set_rev_prop(svn_fs_t *fs,
   if (old_value_p)
     {
       const svn_string_t *wanted_value = *old_value_p;
-      const svn_string_t *present_value = apr_hash_get(txn->proplist, name,
-                                                       APR_HASH_KEY_STRING);
+      const svn_string_t *present_value = svn_hash_gets(txn->proplist, name);
       if ((!wanted_value != !present_value)
           || (wanted_value && present_value
               && !svn_string_compare(wanted_value, present_value)))
@@ -276,7 +275,7 @@ svn_fs_base__set_rev_prop(svn_fs_t *fs,
         }
       /* Fall through. */
     }
-  apr_hash_set(txn->proplist, name, APR_HASH_KEY_STRING, value);
+  svn_hash_sets(txn->proplist, name, value);
 
   /* Overwrite the revision. */
   return put_txn(fs, txn, txn_id, trail, pool);
@@ -537,7 +536,7 @@ svn_fs_base__txn_prop(svn_string_t **val
                                  FALSE, pool));
 
   /* And then the prop from that list (if there was a list). */
-  *value_p = apr_hash_get(table, propname, APR_HASH_KEY_STRING);
+  *value_p = svn_hash_gets(table, propname);
 
   return SVN_NO_ERROR;
 }
@@ -575,7 +574,7 @@ svn_fs_base__set_txn_prop(svn_fs_t *fs,
     txn->proplist = apr_hash_make(pool);
 
   /* Set the property. */
-  apr_hash_set(txn->proplist, name, APR_HASH_KEY_STRING, value);
+  svn_hash_sets(txn->proplist, name, value);
 
   /* Now overwrite the transaction. */
   return put_txn(fs, txn, txn_name, trail, pool);

Modified: subversion/trunk/subversion/libsvn_fs_base/tree.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/tree.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_base/tree.c (original)
+++ subversion/trunk/subversion/libsvn_fs_base/tree.c Sat Mar 23 15:44:36 2013
@@ -39,6 +39,7 @@
 #include <string.h>
 #include <assert.h>
 #include "svn_private_config.h"
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_error.h"
 #include "svn_path.h"
@@ -160,7 +161,7 @@ dag_node_cache_get(svn_fs_root_t *root,
     return NULL;
 
   /* Look in the cache for our desired item. */
-  cache_item = apr_hash_get(brd->node_cache, path, APR_HASH_KEY_STRING);
+  cache_item = svn_hash_gets(brd->node_cache, path);
   if (cache_item)
     return svn_fs_base__dag_dup(cache_item->node, pool);
 
@@ -208,7 +209,7 @@ dag_node_cache_set(svn_fs_root_t *root,
      root, and that only happens once under that root.  So, we'll be a
      little bit sloppy here, and count on callers doing the right
      thing. */
-  cache_item = apr_hash_get(brd->node_cache, path, APR_HASH_KEY_STRING);
+  cache_item = svn_hash_gets(brd->node_cache, path);
   if (cache_item)
     {
       /* ### This section is somehow broken.  I don't know how, but it
@@ -250,9 +251,8 @@ dag_node_cache_set(svn_fs_root_t *root,
     {
       /* No room.  Expire the oldest thing. */
       cache_path = brd->node_cache_keys[brd->node_cache_idx];
-      cache_item = apr_hash_get(brd->node_cache, cache_path,
-                                APR_HASH_KEY_STRING);
-      apr_hash_set(brd->node_cache, cache_path, APR_HASH_KEY_STRING, NULL);
+      cache_item = svn_hash_gets(brd->node_cache, cache_path);
+      svn_hash_sets(brd->node_cache, cache_path, NULL);
       cache_pool = cache_item->pool;
       svn_pool_clear(cache_pool);
     }
@@ -269,7 +269,7 @@ dag_node_cache_set(svn_fs_root_t *root,
 
   /* Now add it to the cache. */
   cache_path = apr_pstrdup(cache_pool, path);
-  apr_hash_set(brd->node_cache, cache_path, APR_HASH_KEY_STRING, cache_item);
+  svn_hash_sets(brd->node_cache, cache_path, cache_item);
   brd->node_cache_keys[brd->node_cache_idx] = cache_path;
 
   /* Advance the cache pointer. */
@@ -309,11 +309,10 @@ txn_body_txn_root(void *baton,
   /* Look for special txn props that represent the 'flags' behavior of
      the transaction. */
   SVN_ERR(svn_fs_base__txn_proplist_in_trail(&txnprops, svn_txn_id, trail));
-  if (apr_hash_get(txnprops, SVN_FS__PROP_TXN_CHECK_OOD, APR_HASH_KEY_STRING))
+  if (svn_hash_gets(txnprops, SVN_FS__PROP_TXN_CHECK_OOD))
     flags |= SVN_FS_TXN_CHECK_OOD;
 
-  if (apr_hash_get(txnprops, SVN_FS__PROP_TXN_CHECK_LOCKS,
-                   APR_HASH_KEY_STRING))
+  if (svn_hash_gets(txnprops, SVN_FS__PROP_TXN_CHECK_LOCKS))
     flags |= SVN_FS_TXN_CHECK_LOCKS;
 
   root = make_txn_root(fs, svn_txn_id, txn->base_rev, flags, trail->pool);
@@ -1191,8 +1190,7 @@ txn_body_node_prop(void *baton,
                                         trail, trail->pool));
   *(args->value_p) = NULL;
   if (proplist)
-    *(args->value_p) = apr_hash_get(proplist, args->propname,
-                                    APR_HASH_KEY_STRING);
+    *(args->value_p) = svn_hash_gets(proplist, args->propname);
   return SVN_NO_ERROR;
 }
 
@@ -1304,7 +1302,7 @@ txn_body_change_node_prop(void *baton,
     proplist = apr_hash_make(trail->pool);
 
   /* Set the property. */
-  apr_hash_set(proplist, args->name, APR_HASH_KEY_STRING, args->value);
+  svn_hash_sets(proplist, args->name, args->value);
 
   /* Overwrite the node's proplist. */
   SVN_ERR(svn_fs_base__dag_set_proplist(parent_path->node, proplist,
@@ -2527,7 +2525,7 @@ verify_locks(const char *txn_name,
         continue;
 
       /* Fetch the change associated with our path.  */
-      change = apr_hash_get(changes, path, APR_HASH_KEY_STRING);
+      change = svn_hash_gets(changes, path);
 
       /* What does it mean to succeed at lock verification for a given
          path?  For an existing file or directory getting modified
@@ -5000,7 +4998,7 @@ txn_body_get_mergeinfo_data_and_entries(
 
           SVN_ERR(svn_fs_base__dag_get_proplist(&plist, child_node,
                                                 trail, iterpool));
-          pval = apr_hash_get(plist, SVN_PROP_MERGEINFO, APR_HASH_KEY_STRING);
+          pval = svn_hash_gets(plist, SVN_PROP_MERGEINFO);
           if (! pval)
             {
               svn_string_t *id_str = svn_fs_base__id_unparse(child_id,
@@ -5024,11 +5022,10 @@ txn_body_get_mergeinfo_data_and_entries(
             }
           else
             {
-              apr_hash_set(args->result_catalog,
-                           svn_fspath__join(args->node_path, dirent->name,
-                                            result_pool),
-                           APR_HASH_KEY_STRING,
-                           child_mergeinfo);
+              svn_hash_sets(args->result_catalog,
+                            svn_fspath__join(args->node_path, dirent->name,
+                                             result_pool),
+                            child_mergeinfo);
             }
         }
 
@@ -5048,10 +5045,9 @@ txn_body_get_mergeinfo_data_and_entries(
                                          "but is not a directory"),
                                        id_str->data);
             }
-          apr_hash_set(args->children_atop_mergeinfo_trees,
-                       apr_pstrdup(children_pool, dirent->name),
-                       APR_HASH_KEY_STRING,
-                       svn_fs_base__dag_dup(child_node, children_pool));
+          svn_hash_sets(args->children_atop_mergeinfo_trees,
+                        apr_pstrdup(children_pool, dirent->name),
+                        svn_fs_base__dag_dup(child_node, children_pool));
         }
     }
 
@@ -5177,8 +5173,7 @@ txn_body_get_mergeinfo_for_path(void *ba
   svn_pool_destroy(iterpool);
 
   SVN_ERR(svn_fs_base__dag_get_proplist(&proplist, node, trail, trail->pool));
-  mergeinfo_string = apr_hash_get(proplist, SVN_PROP_MERGEINFO,
-                                  APR_HASH_KEY_STRING);
+  mergeinfo_string = svn_hash_gets(proplist, SVN_PROP_MERGEINFO);
   if (! mergeinfo_string)
     {
       svn_string_t *id_str =
@@ -5295,9 +5290,8 @@ get_mergeinfos_for_paths(svn_fs_root_t *
                                      txn_body_get_mergeinfo_for_path,
                                      &gmfp_args, FALSE, iterpool));
       if (path_mergeinfo)
-        apr_hash_set(result_catalog, apr_pstrdup(result_pool, path),
-                     APR_HASH_KEY_STRING,
-                     path_mergeinfo);
+        svn_hash_sets(result_catalog, apr_pstrdup(result_pool, path),
+                      path_mergeinfo);
 
       /* If we're including descendants, do so. */
       if (include_descendants)

Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Sat Mar 23 15:44:36 2013
@@ -1796,7 +1796,7 @@ static svn_error_t * read_header_block(a
 
       /* header_str is safely in our pool, so we can use bits of it as
          key and value. */
-      apr_hash_set(*headers, name, APR_HASH_KEY_STRING, value);
+      svn_hash_sets(*headers, name, value);
     }
 
   return SVN_NO_ERROR;
@@ -2355,7 +2355,7 @@ svn_fs_fs__read_noderev(node_revision_t 
   noderev = apr_pcalloc(pool, sizeof(*noderev));
 
   /* Read the node-rev id. */
-  value = apr_hash_get(headers, HEADER_ID, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_ID);
   if (value == NULL)
       /* ### More information: filename/offset coordinates */
       return svn_error_create(SVN_ERR_FS_CORRUPT, NULL,
@@ -2367,7 +2367,7 @@ svn_fs_fs__read_noderev(node_revision_t 
   noderev_id = value; /* for error messages later */
 
   /* Read the type. */
-  value = apr_hash_get(headers, HEADER_TYPE, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_TYPE);
 
   if ((value == NULL) ||
       (strcmp(value, KIND_FILE) != 0 && strcmp(value, KIND_DIR)))
@@ -2380,14 +2380,14 @@ svn_fs_fs__read_noderev(node_revision_t 
     : svn_node_dir;
 
   /* Read the 'count' field. */
-  value = apr_hash_get(headers, HEADER_COUNT, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_COUNT);
   if (value)
     SVN_ERR(svn_cstring_atoi(&noderev->predecessor_count, value));
   else
     noderev->predecessor_count = 0;
 
   /* Get the properties location. */
-  value = apr_hash_get(headers, HEADER_PROPS, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_PROPS);
   if (value)
     {
       SVN_ERR(read_rep_offsets(&noderev->prop_rep, value,
@@ -2395,7 +2395,7 @@ svn_fs_fs__read_noderev(node_revision_t 
     }
 
   /* Get the data location. */
-  value = apr_hash_get(headers, HEADER_TEXT, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_TEXT);
   if (value)
     {
       SVN_ERR(read_rep_offsets(&noderev->data_rep, value,
@@ -2404,7 +2404,7 @@ svn_fs_fs__read_noderev(node_revision_t 
     }
 
   /* Get the created path. */
-  value = apr_hash_get(headers, HEADER_CPATH, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_CPATH);
   if (value == NULL)
     {
       return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL,
@@ -2417,13 +2417,13 @@ svn_fs_fs__read_noderev(node_revision_t 
     }
 
   /* Get the predecessor ID. */
-  value = apr_hash_get(headers, HEADER_PRED, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_PRED);
   if (value)
     noderev->predecessor_id = svn_fs_fs__id_parse(value, strlen(value),
                                                   pool);
 
   /* Get the copyroot. */
-  value = apr_hash_get(headers, HEADER_COPYROOT, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_COPYROOT);
   if (value == NULL)
     {
       noderev->copyroot_path = apr_pstrdup(pool, noderev->created_path);
@@ -2449,7 +2449,7 @@ svn_fs_fs__read_noderev(node_revision_t 
     }
 
   /* Get the copyfrom. */
-  value = apr_hash_get(headers, HEADER_COPYFROM, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_COPYFROM);
   if (value == NULL)
     {
       noderev->copyfrom_path = NULL;
@@ -2473,18 +2473,18 @@ svn_fs_fs__read_noderev(node_revision_t 
     }
 
   /* Get whether this is a fresh txn root. */
-  value = apr_hash_get(headers, HEADER_FRESHTXNRT, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_FRESHTXNRT);
   noderev->is_fresh_txn_root = (value != NULL);
 
   /* Get the mergeinfo count. */
-  value = apr_hash_get(headers, HEADER_MINFO_CNT, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_MINFO_CNT);
   if (value)
     SVN_ERR(svn_cstring_atoi64(&noderev->mergeinfo_count, value));
   else
     noderev->mergeinfo_count = 0;
 
   /* Get whether *this* node has mergeinfo. */
-  value = apr_hash_get(headers, HEADER_MINFO_HERE, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_MINFO_HERE);
   noderev->has_mergeinfo = (value != NULL);
 
   *noderev_p = noderev;
@@ -2801,7 +2801,7 @@ get_fs_id_at_offset(svn_fs_id_t **id_p,
   /* In error messages, the offset is relative to the pack file,
      not to the rev file. */
 
-  node_id_str = apr_hash_get(headers, HEADER_ID, APR_HASH_KEY_STRING);
+  node_id_str = svn_hash_gets(headers, HEADER_ID);
 
   if (node_id_str == NULL)
     return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL,
@@ -5544,7 +5544,7 @@ parse_dir_entries(apr_hash_t **entries_p
 
       dirent->id = svn_fs_fs__id_parse(str, strlen(str), pool);
 
-      apr_hash_set(*entries_p, dirent->name, APR_HASH_KEY_STRING, dirent);
+      svn_hash_sets(*entries_p, dirent->name, dirent);
     }
 
   return SVN_NO_ERROR;
@@ -5638,7 +5638,7 @@ svn_fs_fs__rep_contents_dir_entry(svn_fs
                                           scratch_pool));
 
       /* find desired entry and return a copy in POOL, if found */
-      entry = apr_hash_get(entries, name, APR_HASH_KEY_STRING);
+      entry = svn_hash_gets(entries, name);
       if (entry != NULL)
         {
           entry_copy = apr_palloc(result_pool, sizeof(*entry_copy));
@@ -6622,7 +6622,7 @@ svn_fs_fs__change_txn_props(svn_fs_txn_t
     {
       svn_prop_t *prop = &APR_ARRAY_IDX(props, i, svn_prop_t);
 
-      apr_hash_set(txn_prop, prop->name, APR_HASH_KEY_STRING, prop->value);
+      svn_hash_sets(txn_prop, prop->name, prop->value);
     }
 
   /* Create a new version of the file and write out the new props. */
@@ -8336,7 +8336,7 @@ verify_locks(svn_fs_t *fs,
         continue;
 
       /* Fetch the change associated with our path.  */
-      change = apr_hash_get(changes, path, APR_HASH_KEY_STRING);
+      change = svn_hash_gets(changes, path);
 
       /* What does it mean to succeed at lock verification for a given
          path?  For an existing file or directory getting modified
@@ -8455,14 +8455,13 @@ commit_body(void *baton, apr_pool_t *poo
   txnprop_list = apr_array_make(pool, 3, sizeof(svn_prop_t));
   prop.value = NULL;
 
-  if (apr_hash_get(txnprops, SVN_FS__PROP_TXN_CHECK_OOD, APR_HASH_KEY_STRING))
+  if (svn_hash_gets(txnprops, SVN_FS__PROP_TXN_CHECK_OOD))
     {
       prop.name = SVN_FS__PROP_TXN_CHECK_OOD;
       APR_ARRAY_PUSH(txnprop_list, svn_prop_t) = prop;
     }
 
-  if (apr_hash_get(txnprops, SVN_FS__PROP_TXN_CHECK_LOCKS,
-                   APR_HASH_KEY_STRING))
+  if (svn_hash_gets(txnprops, SVN_FS__PROP_TXN_CHECK_LOCKS))
     {
       prop.name = SVN_FS__PROP_TXN_CHECK_LOCKS;
       APR_ARRAY_PUSH(txnprop_list, svn_prop_t) = prop;
@@ -8670,7 +8669,7 @@ write_revision_zero(svn_fs_t *fs)
   date.data = svn_time_to_cstring(apr_time_now(), fs->pool);
   date.len = strlen(date.data);
   proplist = apr_hash_make(fs->pool);
-  apr_hash_set(proplist, SVN_PROP_REVISION_DATE, APR_HASH_KEY_STRING, &date);
+  svn_hash_sets(proplist, SVN_PROP_REVISION_DATE, &date);
   return set_revision_proplist(fs, 0, proplist, fs->pool);
 }
 
@@ -8686,17 +8685,13 @@ svn_fs_fs__create(svn_fs_t *fs,
   /* See if compatibility with older versions was explicitly requested. */
   if (fs->config)
     {
-      if (apr_hash_get(fs->config, SVN_FS_CONFIG_PRE_1_4_COMPATIBLE,
-                                   APR_HASH_KEY_STRING))
+      if (svn_hash_gets(fs->config, SVN_FS_CONFIG_PRE_1_4_COMPATIBLE))
         format = 1;
-      else if (apr_hash_get(fs->config, SVN_FS_CONFIG_PRE_1_5_COMPATIBLE,
-                                        APR_HASH_KEY_STRING))
+      else if (svn_hash_gets(fs->config, SVN_FS_CONFIG_PRE_1_5_COMPATIBLE))
         format = 2;
-      else if (apr_hash_get(fs->config, SVN_FS_CONFIG_PRE_1_6_COMPATIBLE,
-                                        APR_HASH_KEY_STRING))
+      else if (svn_hash_gets(fs->config, SVN_FS_CONFIG_PRE_1_6_COMPATIBLE))
         format = 3;
-      else if (apr_hash_get(fs->config, SVN_FS_CONFIG_PRE_1_8_COMPATIBLE,
-                                        APR_HASH_KEY_STRING))
+      else if (svn_hash_gets(fs->config, SVN_FS_CONFIG_PRE_1_8_COMPATIBLE))
         format = 4;
     }
   ffd->format = format;
@@ -8900,13 +8895,13 @@ recover_find_max_ids(svn_fs_t *fs, svn_r
                             pool));
 
   /* Check that this is a directory.  It should be. */
-  value = apr_hash_get(headers, HEADER_TYPE, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_TYPE);
   if (value == NULL || strcmp(value, KIND_DIR) != 0)
     return svn_error_create(SVN_ERR_FS_CORRUPT, NULL,
                             _("Recovery encountered a non-directory node"));
 
   /* Get the data location.  No data location indicates an empty directory. */
-  value = apr_hash_get(headers, HEADER_TEXT, APR_HASH_KEY_STRING);
+  value = svn_hash_gets(headers, HEADER_TEXT);
   if (!value)
     return SVN_NO_ERROR;
   SVN_ERR(read_rep_offsets(&data_rep, value, NULL, FALSE, pool));
@@ -9361,7 +9356,7 @@ svn_fs_fs__get_node_origin(const svn_fs_
   if (node_origins)
     {
       svn_string_t *origin_id_str =
-        apr_hash_get(node_origins, node_id, APR_HASH_KEY_STRING);
+        svn_hash_gets(node_origins, node_id);
       if (origin_id_str)
         *origin_id = svn_fs_fs__id_parse(origin_id_str->data,
                                          origin_id_str->len, pool);
@@ -9396,7 +9391,7 @@ set_node_origins_for_file(svn_fs_t *fs,
   if (! origins_hash)
     origins_hash = apr_hash_make(pool);
 
-  old_node_rev_id = apr_hash_get(origins_hash, node_id, APR_HASH_KEY_STRING);
+  old_node_rev_id = svn_hash_gets(origins_hash, node_id);
 
   if (old_node_rev_id && !svn_string_compare(node_rev_id, old_node_rev_id))
     return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL,
@@ -9405,7 +9400,7 @@ set_node_origins_for_file(svn_fs_t *fs,
                                "(%s)"),
                              node_id, old_node_rev_id->data, node_rev_id->data);
 
-  apr_hash_set(origins_hash, node_id, APR_HASH_KEY_STRING, node_rev_id);
+  svn_hash_sets(origins_hash, node_id, node_rev_id);
 
   /* Sure, there's a race condition here.  Two processes could be
      trying to add different cache elements to the same file at the
@@ -9586,7 +9581,7 @@ svn_fs_fs__revision_prop(svn_string_t **
   SVN_ERR(svn_fs__check_fs(fs, TRUE));
   SVN_ERR(svn_fs_fs__revision_proplist(&table, fs, rev, pool));
 
-  *value_p = apr_hash_get(table, propname, APR_HASH_KEY_STRING);
+  *value_p = svn_hash_gets(table, propname);
 
   return SVN_NO_ERROR;
 }
@@ -9615,8 +9610,7 @@ change_rev_prop_body(void *baton, apr_po
   if (cb->old_value_p)
     {
       const svn_string_t *wanted_value = *cb->old_value_p;
-      const svn_string_t *present_value = apr_hash_get(table, cb->name,
-                                                       APR_HASH_KEY_STRING);
+      const svn_string_t *present_value = svn_hash_gets(table, cb->name);
       if ((!wanted_value != !present_value)
           || (wanted_value && present_value
               && !svn_string_compare(wanted_value, present_value)))
@@ -9629,7 +9623,7 @@ change_rev_prop_body(void *baton, apr_po
         }
       /* Fall through. */
     }
-  apr_hash_set(table, cb->name, APR_HASH_KEY_STRING, cb->value);
+  svn_hash_sets(table, cb->name, cb->value);
 
   return set_revision_proplist(cb->fs, cb->rev, table, pool);
 }
@@ -9688,7 +9682,7 @@ svn_fs_fs__txn_prop(svn_string_t **value
   SVN_ERR(svn_fs__check_fs(fs, TRUE));
   SVN_ERR(svn_fs_fs__txn_proplist(&table, txn, pool));
 
-  *value_p = apr_hash_get(table, propname, APR_HASH_KEY_STRING);
+  *value_p = svn_hash_gets(table, propname);
 
   return SVN_NO_ERROR;
 }

Modified: subversion/trunk/subversion/libsvn_fs_fs/lock.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/lock.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/lock.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/lock.c Sat Mar 23 15:44:36 2013
@@ -105,7 +105,7 @@ hash_fetch(apr_hash_t *hash,
            const char *key,
            apr_pool_t *pool)
 {
-  svn_string_t *str = apr_hash_get(hash, key, APR_HASH_KEY_STRING);
+  svn_string_t *str = svn_hash_gets(hash, key);
   return str ? str->data : NULL;
 }
 
@@ -324,8 +324,8 @@ read_digest_file(apr_hash_t **children_p
 
       for (i = 0; i < kiddos->nelts; i++)
         {
-          apr_hash_set(*children_p, APR_ARRAY_IDX(kiddos, i, const char *),
-                       APR_HASH_KEY_STRING, (void *)1);
+          svn_hash_sets(*children_p, APR_ARRAY_IDX(kiddos, i, const char *),
+                        (void *)1);
         }
     }
   return SVN_NO_ERROR;
@@ -387,11 +387,9 @@ set_lock(const char *fs_path,
       else
         {
           /* If we already have an entry for this path, we're done. */
-          if (apr_hash_get(this_children, lock_digest_path,
-                           APR_HASH_KEY_STRING))
+          if (svn_hash_gets(this_children, lock_digest_path))
             break;
-          apr_hash_set(this_children, lock_digest_path,
-                       APR_HASH_KEY_STRING, (void *)1);
+          svn_hash_sets(this_children, lock_digest_path, (void *)1);
         }
       SVN_ERR(write_digest_file(this_children, this_lock, fs_path,
                                 digest_path, perms_reference, subpool));
@@ -448,7 +446,7 @@ delete_lock(svn_fs_t *fs,
         }
 
       if (child_to_kill)
-        apr_hash_set(this_children, child_to_kill, APR_HASH_KEY_STRING, NULL);
+        svn_hash_sets(this_children, child_to_kill, NULL);
 
       if (! (this_lock || apr_hash_count(this_children) != 0))
         {
@@ -690,8 +688,7 @@ verify_lock(svn_fs_t *fs,
        _("User '%s' does not own lock on path '%s' (currently locked by '%s')"),
        fs->access_ctx->username, lock->path, lock->owner);
 
-  else if (apr_hash_get(fs->access_ctx->lock_tokens, lock->token,
-                        APR_HASH_KEY_STRING) == NULL)
+  else if (svn_hash_gets(fs->access_ctx->lock_tokens, lock->token) == NULL)
     return svn_error_createf
       (SVN_ERR_FS_BAD_LOCK_TOKEN, NULL,
        _("Cannot verify lock on path '%s'; no matching lock-token available"),

Modified: subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.c Sat Mar 23 15:44:36 2013
@@ -360,7 +360,7 @@ deserialize_dir(void *buffer, hash_data_
       svn_fs_fs__id_deserialize(entry, (svn_fs_id_t **)&entry->id);
 
       /* add the entry to the hash */
-      apr_hash_set(result, entry->name, APR_HASH_KEY_STRING, entry);
+      svn_hash_sets(result, entry->name, entry);
     }
 
   /* return the now complete hash */
@@ -949,10 +949,7 @@ slowly_replace_dir_entry(void **data,
                                              *data,
                                              hash_data->len,
                                              pool));
-  apr_hash_set(dir,
-               replace_baton->name,
-               APR_HASH_KEY_STRING,
-               replace_baton->new_entry);
+  svn_hash_sets(dir, replace_baton->name, replace_baton->new_entry);
 
   return svn_fs_fs__serialize_dir_entries(data, data_len, dir, pool);
 }

Modified: subversion/trunk/subversion/libsvn_fs_fs/tree.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/tree.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/tree.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/tree.c Sat Mar 23 15:44:36 2013
@@ -586,12 +586,10 @@ svn_fs_fs__txn_root(svn_fs_root_t **root
   SVN_ERR(svn_fs_fs__txn_proplist(&txnprops, txn, pool));
   if (txnprops)
     {
-      if (apr_hash_get(txnprops, SVN_FS__PROP_TXN_CHECK_OOD,
-                       APR_HASH_KEY_STRING))
+      if (svn_hash_gets(txnprops, SVN_FS__PROP_TXN_CHECK_OOD))
         flags |= SVN_FS_TXN_CHECK_OOD;
 
-      if (apr_hash_get(txnprops, SVN_FS__PROP_TXN_CHECK_LOCKS,
-                       APR_HASH_KEY_STRING))
+      if (svn_hash_gets(txnprops, SVN_FS__PROP_TXN_CHECK_LOCKS))
         flags |= SVN_FS_TXN_CHECK_LOCKS;
     }
 
@@ -1360,7 +1358,7 @@ fs_node_prop(svn_string_t **value_p,
   SVN_ERR(svn_fs_fs__dag_get_proplist(&proplist, node, pool));
   *value_p = NULL;
   if (proplist)
-    *value_p = apr_hash_get(proplist, propname, APR_HASH_KEY_STRING);
+    *value_p = svn_hash_gets(proplist, propname);
 
   return SVN_NO_ERROR;
 }
@@ -1461,7 +1459,7 @@ fs_change_node_prop(svn_fs_root_t *root,
     }
 
   /* Set the property. */
-  apr_hash_set(proplist, name, APR_HASH_KEY_STRING, value);
+  svn_hash_sets(proplist, name, value);
 
   /* Overwrite the node's proplist. */
   SVN_ERR(svn_fs_fs__dag_set_proplist(parent_path->node, proplist,
@@ -2491,7 +2489,7 @@ fs_copied_from(svn_revnum_t *rev_p,
      entry. */
   if (! root->is_txn_root) {
     fs_rev_root_data_t *frd = root->fsap_data;
-    copyfrom_str = apr_hash_get(frd->copyfrom_cache, path, APR_HASH_KEY_STRING);
+    copyfrom_str = svn_hash_gets(frd->copyfrom_cache, path);
   }
 
   if (copyfrom_str)
@@ -3752,8 +3750,7 @@ crawl_directory_dag_for_mergeinfo(svn_fs
           svn_error_t *err;
 
           SVN_ERR(svn_fs_fs__dag_get_proplist(&proplist, kid_dag, iterpool));
-          mergeinfo_string = apr_hash_get(proplist, SVN_PROP_MERGEINFO,
-                                          APR_HASH_KEY_STRING);
+          mergeinfo_string = svn_hash_gets(proplist, SVN_PROP_MERGEINFO);
           if (!mergeinfo_string)
             {
               svn_string_t *idstr = svn_fs_fs__id_unparse(dirent->id, iterpool);
@@ -3778,10 +3775,8 @@ crawl_directory_dag_for_mergeinfo(svn_fs
               }
           else
             {
-              apr_hash_set(result_catalog,
-                           apr_pstrdup(result_pool, kid_path),
-                           APR_HASH_KEY_STRING,
-                           kid_mergeinfo);
+              svn_hash_sets(result_catalog, apr_pstrdup(result_pool, kid_path),
+                            kid_mergeinfo);
             }
         }
 
@@ -3873,8 +3868,7 @@ get_mergeinfo_for_path_internal(svn_merg
 
   SVN_ERR(svn_fs_fs__dag_get_proplist(&proplist, nearest_ancestor->node,
                                       scratch_pool));
-  mergeinfo_string = apr_hash_get(proplist, SVN_PROP_MERGEINFO,
-                                  APR_HASH_KEY_STRING);
+  mergeinfo_string = svn_hash_gets(proplist, SVN_PROP_MERGEINFO);
   if (!mergeinfo_string)
     return svn_error_createf
       (SVN_ERR_FS_CORRUPT, NULL,
@@ -4045,8 +4039,7 @@ get_mergeinfos_for_paths(svn_fs_root_t *
         }
 
       if (path_mergeinfo)
-        apr_hash_set(result_catalog, path, APR_HASH_KEY_STRING,
-                     path_mergeinfo);
+        svn_hash_sets(result_catalog, path, path_mergeinfo);
       if (include_descendants)
         SVN_ERR(add_descendant_mergeinfo(result_catalog, root, path,
                                          result_pool, scratch_pool));

Modified: subversion/trunk/subversion/libsvn_fs_util/fs-util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_util/fs-util.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_util/fs-util.c (original)
+++ subversion/trunk/subversion/libsvn_fs_util/fs-util.c Sat Mar 23 15:44:36 2013
@@ -26,6 +26,7 @@
 #include <apr_pools.h>
 #include <apr_strings.h>
 
+#include "svn_hash.h"
 #include "svn_fs.h"
 #include "svn_dirent_uri.h"
 #include "svn_path.h"
@@ -213,8 +214,9 @@ svn_fs__append_to_merged_froms(svn_merge
       const char *path = svn__apr_hash_index_key(hi);
       svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
 
-      apr_hash_set(*output, svn_fspath__join(path, rel_path, pool),
-                   APR_HASH_KEY_STRING, svn_rangelist_dup(rangelist, pool));
+      svn_hash_sets(*output,
+                    svn_fspath__join(path, rel_path, pool),
+                    svn_rangelist_dup(rangelist, pool));
     }
 
   return SVN_NO_ERROR;

Modified: subversion/trunk/subversion/libsvn_ra/compat.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra/compat.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra/compat.c (original)
+++ subversion/trunk/subversion/libsvn_ra/compat.c Sat Mar 23 15:44:36 2013
@@ -23,6 +23,7 @@
 
 #include <apr_pools.h>
 
+#include "svn_hash.h"
 #include "svn_error.h"
 #include "svn_pools.h"
 #include "svn_sorts.h"
@@ -91,7 +92,7 @@ prev_log_path(const char **prev_path_p,
   if (changed_paths)
     {
       /* See if PATH was explicitly changed in this revision. */
-      change = apr_hash_get(changed_paths, path, APR_HASH_KEY_STRING);
+      change = svn_hash_gets(changed_paths, path);
       if (change)
         {
           /* If PATH was not newly added in this revision, then it may or may

Modified: subversion/trunk/subversion/libsvn_ra/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra/deprecated.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra/deprecated.c (original)
+++ subversion/trunk/subversion/libsvn_ra/deprecated.c Sat Mar 23 15:44:36 2013
@@ -26,6 +26,7 @@
    deprecated functions in this file. */
 #define SVN_DEPRECATED
 
+#include "svn_hash.h"
 #include "svn_ra.h"
 #include "svn_path.h"
 #include "svn_compat.h"
@@ -218,9 +219,8 @@ svn_error_t *svn_ra_get_commit_editor2(s
 {
   apr_hash_t *revprop_table = apr_hash_make(pool);
   if (log_msg)
-    apr_hash_set(revprop_table, SVN_PROP_REVISION_LOG,
-                 APR_HASH_KEY_STRING,
-                 svn_string_create(log_msg, pool));
+    svn_hash_sets(revprop_table, SVN_PROP_REVISION_LOG,
+                  svn_string_create(log_msg, pool));
   return svn_ra_get_commit_editor3(session, editor, edit_baton, revprop_table,
                                    commit_callback, commit_baton,
                                    lock_tokens, keep_locks, pool);

Modified: subversion/trunk/subversion/libsvn_ra/ra_loader.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra/ra_loader.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra/ra_loader.c (original)
+++ subversion/trunk/subversion/libsvn_ra/ra_loader.c Sat Mar 23 15:44:36 2013
@@ -320,8 +320,7 @@ svn_error_t *svn_ra_open4(svn_ra_session
   if (config)
     {
       /* Grab the 'servers' config. */
-      servers = apr_hash_get(config, SVN_CONFIG_CATEGORY_SERVERS,
-                             APR_HASH_KEY_STRING);
+      servers = svn_hash_gets(config, SVN_CONFIG_CATEGORY_SERVERS);
       if (servers)
         {
           /* First, look in the global section. */
@@ -1511,7 +1510,7 @@ svn_ra_get_ra_library(svn_ra_plugin_t **
 
           SVN_ERR(compat_initfunc(SVN_RA_ABI_VERSION, load_pool, ht));
 
-          *library = apr_hash_get(ht, scheme, APR_HASH_KEY_STRING);
+          *library = svn_hash_gets(ht, scheme);
 
           /* The library may support just a subset of the schemes listed,
              so we have to check here too. */

Modified: subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c (original)
+++ subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c Sat Mar 23 15:44:36 2013
@@ -22,6 +22,7 @@
  */
 
 #include "ra_local.h"
+#include "svn_hash.h"
 #include "svn_ra.h"
 #include "svn_fs.h"
 #include "svn_delta.h"
@@ -143,8 +144,7 @@ cache_init(void *baton, apr_pool_t *pool
   const char *memory_cache_size_str;
 
   if (config_hash)
-    config = apr_hash_get(config_hash, SVN_CONFIG_CATEGORY_CONFIG,
-                          APR_HASH_KEY_STRING);
+    config = svn_hash_gets(config_hash, SVN_CONFIG_CATEGORY_CONFIG);
   svn_config_get(config, &memory_cache_size_str, SVN_CONFIG_SECTION_MISCELLANY,
                  SVN_CONFIG_OPTION_MEMORY_CACHE_SIZE, NULL);
   if (memory_cache_size_str)
@@ -752,10 +752,10 @@ svn_ra_local__get_commit_editor(svn_ra_s
 
   /* Copy the revprops table so we can add the username. */
   revprop_table = apr_hash_copy(pool, revprop_table);
-  apr_hash_set(revprop_table, SVN_PROP_REVISION_AUTHOR, APR_HASH_KEY_STRING,
-               svn_string_create(sess->username, pool));
-  apr_hash_set(revprop_table, SVN_PROP_TXN_CLIENT_COMPAT_VERSION,
-               APR_HASH_KEY_STRING, svn_string_create(SVN_VER_NUMBER, pool));
+  svn_hash_sets(revprop_table, SVN_PROP_REVISION_AUTHOR,
+                svn_string_create(sess->username, pool));
+  svn_hash_sets(revprop_table, SVN_PROP_TXN_CLIENT_COMPAT_VERSION,
+                svn_string_create(SVN_VER_NUMBER, pool));
 
   /* Get the repos commit-editor */
   return svn_repos_get_commit_editor5
@@ -1078,24 +1078,14 @@ get_node_props(apr_hash_t **props,
                                            &cmt_author, root, path,
                                            scratch_pool));
 
-      apr_hash_set(*props,
-                   SVN_PROP_ENTRY_COMMITTED_REV,
-                   APR_HASH_KEY_STRING,
-                   svn_string_createf(result_pool, "%ld", cmt_rev));
-      apr_hash_set(*props,
-                   SVN_PROP_ENTRY_COMMITTED_DATE,
-                   APR_HASH_KEY_STRING,
-                   cmt_date ? svn_string_create(cmt_date,
-                                                result_pool) : NULL);
-      apr_hash_set(*props,
-                   SVN_PROP_ENTRY_LAST_AUTHOR,
-                   APR_HASH_KEY_STRING,
-                   cmt_author ? svn_string_create(cmt_author,
-                                                  result_pool) : NULL);
-      apr_hash_set(*props,
-                   SVN_PROP_ENTRY_UUID,
-                   APR_HASH_KEY_STRING,
-                   svn_string_create(sess->uuid, result_pool));
+      svn_hash_sets(*props, SVN_PROP_ENTRY_COMMITTED_REV,
+                    svn_string_createf(result_pool, "%ld", cmt_rev));
+      svn_hash_sets(*props, SVN_PROP_ENTRY_COMMITTED_DATE, cmt_date ?
+                    svn_string_create(cmt_date, result_pool) :NULL);
+      svn_hash_sets(*props, SVN_PROP_ENTRY_LAST_AUTHOR, cmt_author ?
+                    svn_string_create(cmt_author, result_pool) :NULL);
+      svn_hash_sets(*props, SVN_PROP_ENTRY_UUID,
+                    svn_string_create(sess->uuid, result_pool));
 
       /* We have no 'wcprops' in ra_local, but might someday. */
     }
@@ -1274,7 +1264,7 @@ svn_ra_local__get_dir(svn_ra_session_t *
             }
 
           /* Store. */
-          apr_hash_set(*dirents, entryname, APR_HASH_KEY_STRING, entry);
+          svn_hash_sets(*dirents, entryname, entry);
         }
       svn_pool_destroy(subpool);
     }
@@ -1654,8 +1644,8 @@ svn_ra_local__get_commit_ev2(svn_editor_
 
   /* Copy the REVPROPS and insert the author/username.  */
   revprops = apr_hash_copy(scratch_pool, revprops);
-  apr_hash_set(revprops, SVN_PROP_REVISION_AUTHOR, APR_HASH_KEY_STRING,
-               svn_string_create(sess->username, scratch_pool));
+  svn_hash_sets(revprops, SVN_PROP_REVISION_AUTHOR,
+                svn_string_create(sess->username, scratch_pool));
 
   return svn_error_trace(svn_repos__get_commit_ev2(
                            editor, sess->repos, NULL /* authz */,

Modified: subversion/trunk/subversion/libsvn_ra_serf/blame.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/blame.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/blame.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/blame.c Sat Mar 23 15:44:36 2013
@@ -24,6 +24,7 @@
 #include <apr_uri.h>
 #include <serf.h>
 
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_ra.h"
 #include "svn_dav.h"
@@ -144,10 +145,9 @@ blame_opened(svn_ra_serf__xml_estate_t *
       svn_txdelta_window_handler_t txdelta;
       void *txdelta_baton;
 
-      path = apr_hash_get(gathered, "path", APR_HASH_KEY_STRING);
-      rev = apr_hash_get(gathered, "rev", APR_HASH_KEY_STRING);
-      merged_revision = apr_hash_get(gathered,
-                                     "merged-revision", APR_HASH_KEY_STRING);
+      path = svn_hash_gets(gathered, "path");
+      rev = svn_hash_gets(gathered, "rev");
+      merged_revision = svn_hash_gets(gathered, "merged-revision");
 
       SVN_ERR(blame_ctx->file_rev(blame_ctx->file_rev_baton,
                                   path, SVN_STR_TO_REV(rev),
@@ -188,8 +188,8 @@ blame_closed(svn_ra_serf__xml_estate_t *
           const char *path;
           const char *rev;
 
-          path = apr_hash_get(attrs, "path", APR_HASH_KEY_STRING);
-          rev = apr_hash_get(attrs, "rev", APR_HASH_KEY_STRING);
+          path = svn_hash_gets(attrs, "path");
+          rev = svn_hash_gets(attrs, "rev");
 
           /* Send a "no content" notification.  */
           SVN_ERR(blame_ctx->file_rev(blame_ctx->file_rev_baton,
@@ -219,7 +219,7 @@ blame_closed(svn_ra_serf__xml_estate_t *
                      || leaving_state == REMOVE_PROP);
 
       name = apr_pstrdup(blame_ctx->state_pool,
-                         apr_hash_get(attrs, "name", APR_HASH_KEY_STRING));
+                         svn_hash_gets(attrs, "name"));
 
       if (leaving_state == REMOVE_PROP)
         {
@@ -227,8 +227,7 @@ blame_closed(svn_ra_serf__xml_estate_t *
         }
       else
         {
-          const char *encoding = apr_hash_get(attrs,
-                                              "encoding", APR_HASH_KEY_STRING);
+          const char *encoding = svn_hash_gets(attrs, "encoding");
 
           if (encoding && strcmp(encoding, "base64") == 0)
             value = svn_base64_decode_string(cdata, blame_ctx->state_pool);
@@ -238,7 +237,7 @@ blame_closed(svn_ra_serf__xml_estate_t *
 
       if (leaving_state == REV_PROP)
         {
-          apr_hash_set(blame_ctx->rev_props, name, APR_HASH_KEY_STRING, value);
+          svn_hash_sets(blame_ctx->rev_props, name, value);
         }
       else
         {

Modified: subversion/trunk/subversion/libsvn_ra_serf/blncache.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/blncache.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/blncache.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/blncache.c Sat Mar 23 15:44:36 2013
@@ -23,6 +23,7 @@
 
 #include <apr_pools.h>
 
+#include "svn_hash.h"
 #include "svn_dirent_uri.h"
 #include "svn_types.h"
 #include "svn_pools.h"
@@ -161,8 +162,7 @@ svn_ra_serf__blncache_get_baseline_info(
                                         const char *baseline_url,
                                         apr_pool_t *pool)
 {
-  baseline_info_t *info = apr_hash_get(blncache->baseline_info, baseline_url,
-                                       APR_HASH_KEY_STRING);
+  baseline_info_t *info = svn_hash_gets(blncache->baseline_info, baseline_url);
   if (info)
     {
       *bc_url_p = apr_pstrdup(pool, info->bc_url);

Modified: subversion/trunk/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/commit.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/commit.c Sat Mar 23 15:44:36 2013
@@ -24,6 +24,7 @@
 #include <apr_uri.h>
 #include <serf.h>
 
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_ra.h"
 #include "svn_dav.h"
@@ -797,11 +798,9 @@ maybe_set_lock_token_header(serf_bucket_
   if (! (relpath && commit_ctx->lock_tokens))
     return SVN_NO_ERROR;
 
-  if (! apr_hash_get(commit_ctx->deleted_entries, relpath,
-                     APR_HASH_KEY_STRING))
+  if (! svn_hash_gets(commit_ctx->deleted_entries, relpath))
     {
-      token = apr_hash_get(commit_ctx->lock_tokens, relpath,
-                           APR_HASH_KEY_STRING);
+      token = svn_hash_gets(commit_ctx->lock_tokens, relpath);
       if (token)
         {
           const char *token_header;
@@ -1107,8 +1106,7 @@ setup_delete_headers(serf_bucket_t *head
 
   if (ctx->lock_token_hash)
     {
-      ctx->lock_token = apr_hash_get(ctx->lock_token_hash, ctx->path,
-                                     APR_HASH_KEY_STRING);
+      ctx->lock_token = svn_hash_gets(ctx->lock_token_hash, ctx->path);
 
       if (ctx->lock_token)
         {
@@ -1307,8 +1305,8 @@ open_root(void *edit_baton,
       post_response_ctx_t *prc;
       const char *rel_path;
       svn_boolean_t post_with_revprops
-        = (apr_hash_get(ctx->session->supported_posts, "create-txn-with-props",
-                        APR_HASH_KEY_STRING) != NULL);
+        = (NULL != svn_hash_gets(ctx->session->supported_posts,
+                                 "create-txn-with-props"));
 
       /* Create our activity URL now on the server. */
       handler = apr_pcalloc(ctx->pool, sizeof(*handler));
@@ -1594,9 +1592,8 @@ delete_entry(const char *path,
       return svn_error_trace(return_response_err(handler));
     }
 
-  apr_hash_set(dir->commit->deleted_entries,
-               apr_pstrdup(dir->commit->pool, path), APR_HASH_KEY_STRING,
-               (void*)1);
+  svn_hash_sets(dir->commit->deleted_entries,
+                apr_pstrdup(dir->commit->pool, path), (void *)1);
 
   return SVN_NO_ERROR;
 }
@@ -1890,8 +1887,7 @@ add_file(const char *path,
 
   while (deleted_parent && deleted_parent[0] != '\0')
     {
-      if (apr_hash_get(dir->commit->deleted_entries,
-                       deleted_parent, APR_HASH_KEY_STRING))
+      if (svn_hash_gets(dir->commit->deleted_entries, deleted_parent))
         {
           break;
         }
@@ -2303,14 +2299,12 @@ svn_ra_serf__get_commit_editor(svn_ra_se
                                       pool));
   if (supports_ephemeral_props)
     {
-      apr_hash_set(ctx->revprop_table,
-                   apr_pstrdup(pool, SVN_PROP_TXN_CLIENT_COMPAT_VERSION),
-                   APR_HASH_KEY_STRING,
-                   svn_string_create(SVN_VER_NUMBER, pool));
-      apr_hash_set(ctx->revprop_table,
-                   apr_pstrdup(pool, SVN_PROP_TXN_USER_AGENT),
-                   APR_HASH_KEY_STRING,
-                   svn_string_create(session->useragent, pool));
+      svn_hash_sets(ctx->revprop_table,
+                    apr_pstrdup(pool, SVN_PROP_TXN_CLIENT_COMPAT_VERSION),
+                    svn_string_create(SVN_VER_NUMBER, pool));
+      svn_hash_sets(ctx->revprop_table,
+                    apr_pstrdup(pool, SVN_PROP_TXN_USER_AGENT),
+                    svn_string_create(session->useragent, pool));
     }
 
   ctx->callback = callback;

Modified: subversion/trunk/subversion/libsvn_ra_serf/getlocations.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/getlocations.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/getlocations.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/getlocations.c Sat Mar 23 15:44:36 2013
@@ -27,6 +27,7 @@
 
 #include <serf.h>
 
+#include "svn_hash.h"
 #include "svn_path.h"
 #include "svn_pools.h"
 #include "svn_ra.h"
@@ -89,8 +90,8 @@ getloc_closed(svn_ra_serf__xml_estate_t 
 
   SVN_ERR_ASSERT(leaving_state == LOCATION);
 
-  revstr = apr_hash_get(attrs, "rev", APR_HASH_KEY_STRING);
-  path = apr_hash_get(attrs, "path", APR_HASH_KEY_STRING);
+  revstr = svn_hash_gets(attrs, "rev");
+  path = svn_hash_gets(attrs, "path");
   if (revstr != NULL && path != NULL)
     {
       svn_revnum_t rev = SVN_STR_TO_REV(revstr);

Modified: subversion/trunk/subversion/libsvn_ra_serf/getlocationsegments.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/getlocationsegments.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/getlocationsegments.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/getlocationsegments.c Sat Mar 23 15:44:36 2013
@@ -27,6 +27,7 @@
 #include <apr_uri.h>
 #include <serf.h>
 
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_ra.h"
 #include "svn_xml.h"
@@ -87,9 +88,9 @@ gls_closed(svn_ra_serf__xml_estate_t *xe
 
   SVN_ERR_ASSERT(leaving_state == SEGMENT);
 
-  path = apr_hash_get(attrs, "path", APR_HASH_KEY_STRING);
-  start_str = apr_hash_get(attrs, "range-start", APR_HASH_KEY_STRING);
-  end_str = apr_hash_get(attrs, "range-end", APR_HASH_KEY_STRING);
+  path = svn_hash_gets(attrs, "path");
+  start_str = svn_hash_gets(attrs, "range-start");
+  end_str = svn_hash_gets(attrs, "range-end");
 
   /* The transition table said these must exist.  */
   SVN_ERR_ASSERT(start_str && end_str);

Modified: subversion/trunk/subversion/libsvn_ra_serf/getlocks.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/getlocks.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/getlocks.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/getlocks.c Sat Mar 23 15:44:36 2013
@@ -27,6 +27,7 @@
 
 #include <serf.h>
 
+#include "svn_hash.h"
 #include "svn_path.h"
 #include "svn_pools.h"
 #include "svn_ra.h"
@@ -114,7 +115,7 @@ getlocks_closed(svn_ra_serf__xml_estate_
 
   if (leaving_state == LOCK)
     {
-      const char *path = apr_hash_get(attrs, "path", APR_HASH_KEY_STRING);
+      const char *path = svn_hash_gets(attrs, "path");
       svn_boolean_t save_lock = FALSE;
 
       /* Filter out unwanted paths.  Since Subversion only allows
@@ -153,25 +154,22 @@ getlocks_closed(svn_ra_serf__xml_estate_
              them may have not been sent, so the value will be NULL.  */
 
           lock.path = path;
-          lock.token = apr_hash_get(attrs, "token", APR_HASH_KEY_STRING);
-          lock.owner = apr_hash_get(attrs, "owner", APR_HASH_KEY_STRING);
-          lock.comment = apr_hash_get(attrs, "comment", APR_HASH_KEY_STRING);
+          lock.token = svn_hash_gets(attrs, "token");
+          lock.owner = svn_hash_gets(attrs, "owner");
+          lock.comment = svn_hash_gets(attrs, "comment");
 
-          date = apr_hash_get(attrs, SVN_DAV__CREATIONDATE,
-                              APR_HASH_KEY_STRING);
+          date = svn_hash_gets(attrs, SVN_DAV__CREATIONDATE);
           if (date)
             SVN_ERR(svn_time_from_cstring(&lock.creation_date, date,
                                           scratch_pool));
 
-          date = apr_hash_get(attrs, "expirationdate",
-                              APR_HASH_KEY_STRING);
+          date = svn_hash_gets(attrs, "expirationdate");
           if (date)
             SVN_ERR(svn_time_from_cstring(&lock.expiration_date, date,
                                           scratch_pool));
 
           result_lock = svn_lock_dup(&lock, lock_ctx->pool);
-          apr_hash_set(lock_ctx->hash, result_lock->path, APR_HASH_KEY_STRING,
-                       result_lock);
+          svn_hash_sets(lock_ctx->hash, result_lock->path, result_lock);
         }
     }
   else

Modified: subversion/trunk/subversion/libsvn_ra_serf/inherited_props.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/inherited_props.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/inherited_props.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/inherited_props.c Sat Mar 23 15:44:36 2013
@@ -25,6 +25,7 @@
 #include <apr_tables.h>
 #include <apr_xml.h>
 
+#include "svn_hash.h"
 #include "svn_path.h"
 #include "svn_ra.h"
 #include "svn_string.h"
@@ -183,11 +184,10 @@ end_element(svn_ra_serf__xml_parser_t *p
                                                 iprops_ctx->pool);
         }
 
-      apr_hash_set(iprops_ctx->curr_iprop->prop_hash,
-                   apr_pstrdup(iprops_ctx->pool,
-                               iprops_ctx->curr_propname->data),
-                   APR_HASH_KEY_STRING,
-                   prop_val);
+      svn_hash_sets(iprops_ctx->curr_iprop->prop_hash,
+                    apr_pstrdup(iprops_ctx->pool,
+                                iprops_ctx->curr_propname->data),
+                    prop_val);
       /* Clear current propname and propval in the event there are
          multiple properties on the current path. */
       svn_stringbuf_setempty(iprops_ctx->curr_propname);

Modified: subversion/trunk/subversion/libsvn_ra_serf/log.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/log.c?rev=1460176&r1=1460175&r2=1460176&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/log.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/log.c Sat Mar 23 15:44:36 2013
@@ -26,6 +26,7 @@
 #include <apr_uri.h>
 #include <serf.h>
 
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_ra.h"
 #include "svn_dav.h"
@@ -177,7 +178,7 @@ collect_revprop(apr_hash_t *revprops,
     }
 
   /* Caller has ensured PROPNAME has sufficient lifetime.  */
-  apr_hash_set(revprops, propname, APR_HASH_KEY_STRING, decoded);
+  svn_hash_sets(revprops, propname, decoded);
 
   return SVN_NO_ERROR;
 }
@@ -202,8 +203,8 @@ collect_path(apr_hash_t *paths,
   lcp->copyfrom_rev = SVN_INVALID_REVNUM;
 
   /* COPYFROM_* are only recorded for ADDED_PATH and REPLACED_PATH.  */
-  copyfrom_path = apr_hash_get(attrs, "copyfrom-path", APR_HASH_KEY_STRING);
-  copyfrom_rev = apr_hash_get(attrs, "copyfrom-rev", APR_HASH_KEY_STRING);
+  copyfrom_path = svn_hash_gets(attrs, "copyfrom-path");
+  copyfrom_rev = svn_hash_gets(attrs, "copyfrom-rev");
   if (copyfrom_path && copyfrom_rev)
     {
       svn_revnum_t rev = SVN_STR_TO_REV(copyfrom_rev);
@@ -215,18 +216,14 @@ collect_path(apr_hash_t *paths,
         }
     }
 
-  lcp->node_kind = svn_node_kind_from_word(apr_hash_get(
-                                             attrs, "node-kind",
-                                             APR_HASH_KEY_STRING));
-  lcp->text_modified = svn_tristate__from_word(apr_hash_get(
-                                                 attrs, "text-mods",
-                                                 APR_HASH_KEY_STRING));
-  lcp->props_modified = svn_tristate__from_word(apr_hash_get(
-                                                  attrs, "prop-mods",
-                                                  APR_HASH_KEY_STRING));
+  lcp->node_kind = svn_node_kind_from_word(svn_hash_gets(attrs, "node-kind"));
+  lcp->text_modified = svn_tristate__from_word(svn_hash_gets(attrs,
+                                                             "text-mods"));
+  lcp->props_modified = svn_tristate__from_word(svn_hash_gets(attrs,
+                                                              "prop-mods"));
 
   path = apr_pstrmemdup(result_pool, cdata->data, cdata->len);
-  apr_hash_set(paths, path, APR_HASH_KEY_STRING, lcp);
+  svn_hash_sets(paths, path, lcp);
 
   return SVN_NO_ERROR;
 }
@@ -297,7 +294,7 @@ log_closed(svn_ra_serf__xml_estate_t *xe
                                                         "subtractive-merge",
                                                         FALSE);
 
-      rev_str = apr_hash_get(attrs, "revision", APR_HASH_KEY_STRING);
+      rev_str = svn_hash_gets(attrs, "revision");
       if (rev_str)
         log_entry->revision = SVN_STR_TO_REV(rev_str);
       else
@@ -335,8 +332,7 @@ log_closed(svn_ra_serf__xml_estate_t *xe
           SVN_ERR(collect_revprop(log_ctx->collect_revprops,
                                   SVN_PROP_REVISION_AUTHOR,
                                   cdata,
-                                  apr_hash_get(attrs, "encoding",
-                                               APR_HASH_KEY_STRING)));
+                                  svn_hash_gets(attrs, "encoding")));
         }
     }
   else if (leaving_state == DATE)
@@ -346,8 +342,7 @@ log_closed(svn_ra_serf__xml_estate_t *xe
           SVN_ERR(collect_revprop(log_ctx->collect_revprops,
                                   SVN_PROP_REVISION_DATE,
                                   cdata,
-                                  apr_hash_get(attrs, "encoding",
-                                               APR_HASH_KEY_STRING)));
+                                  svn_hash_gets(attrs, "encoding")));
         }
     }
   else if (leaving_state == COMMENT)
@@ -357,8 +352,7 @@ log_closed(svn_ra_serf__xml_estate_t *xe
           SVN_ERR(collect_revprop(log_ctx->collect_revprops,
                                   SVN_PROP_REVISION_LOG,
                                   cdata,
-                                  apr_hash_get(attrs, "encoding",
-                                               APR_HASH_KEY_STRING)));
+                                  svn_hash_gets(attrs, "encoding")));
         }
     }
   else if (leaving_state == REVPROP)
@@ -368,9 +362,9 @@ log_closed(svn_ra_serf__xml_estate_t *xe
       SVN_ERR(collect_revprop(
                 log_ctx->collect_revprops,
                 apr_pstrdup(result_pool,
-                            apr_hash_get(attrs, "name", APR_HASH_KEY_STRING)),
+                            svn_hash_gets(attrs, "name")),
                 cdata,
-                apr_hash_get(attrs, "encoding", APR_HASH_KEY_STRING)
+                svn_hash_gets(attrs, "encoding")
                 ));
     }
   else if (leaving_state == HAS_CHILDREN)