Author: brane
Date: Tue Aug 19 09:51:17 2014
New Revision: 1618826
URL: http://svn.apache.org/r1618826
Log:
On the authzperf branch: Make the in-place string function a private API,
the authz parser will need it.
* subversion/libsvn_repos/authz.h
(svn_authz__reverse_string): New prototype.
* subversion/libsvn_repos/authz_parse.c
(svn_authz__reverse_string): Move implementation here from authz.c.
* subversion/libsvn_repos/authz.c
(reverse_string): Remove. Update all uses to svn_authz__reverse_string.
Modified:
subversion/branches/authzperf/subversion/libsvn_repos/authz.c
subversion/branches/authzperf/subversion/libsvn_repos/authz.h
subversion/branches/authzperf/subversion/libsvn_repos/authz_parse.c
Modified: subversion/branches/authzperf/subversion/libsvn_repos/authz.c
URL:
http://svn.apache.org/viewvc/subversion/branches/authzperf/subversion/libsvn_repos/authz.c?rev=1618826&r1=1618825&r2=1618826&view=diff
==============================================================================
--- subversion/branches/authzperf/subversion/libsvn_repos/authz.c (original)
+++ subversion/branches/authzperf/subversion/libsvn_repos/authz.c Tue Aug 19
09:51:17 2014
@@ -55,21 +55,6 @@ set_add_string(apr_hash_t *set,
apr_hash_set(set, key, strlen(key), "");
}
-/* In situ reversal of the first LEN chars in S.
- * S must be at least LEN characters long.
- */
-static void
-reverse_string(char *s,
- apr_size_t len)
-{
- char *lhs, *rhs;
- for (lhs = s, rhs = s + len - 1; lhs < rhs; ++lhs, --rhs)
- {
- char c = *lhs;
- *lhs = *rhs;
- *rhs = c;
- }
-}
/*** Users, aliases and groups. ***/
@@ -464,7 +449,7 @@ insert_path(node_t *node,
else if (is_suffix_segment(segment))
{
char *reversed = apr_pstrdup(scratch_pool, segment + 1);
- reverse_string(reversed, strlen(reversed));
+ svn_authz__reverse_string(reversed, strlen(reversed));
sub_node = ensure_node_in_array(&node->pattern_sub_nodes->suffixes,
reversed, result_pool);
}
@@ -1032,7 +1017,7 @@ lookup(lookup_state_t *state,
if (node->pattern_sub_nodes->suffixes)
{
/* Suffixes behave like reversed prefixes. */
- reverse_string(segment->data, segment->len);
+ svn_authz__reverse_string(segment->data, segment->len);
add_prefix_matches(state, segment,
node->pattern_sub_nodes->suffixes);
}
Modified: subversion/branches/authzperf/subversion/libsvn_repos/authz.h
URL:
http://svn.apache.org/viewvc/subversion/branches/authzperf/subversion/libsvn_repos/authz.h?rev=1618826&r1=1618825&r2=1618826&view=diff
==============================================================================
--- subversion/branches/authzperf/subversion/libsvn_repos/authz.h (original)
+++ subversion/branches/authzperf/subversion/libsvn_repos/authz.h Tue Aug 19
09:51:17 2014
@@ -197,6 +197,11 @@ svn_authz__tng_parse(svn_authz_tng_t **a
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+
+/* Reverse a STRING of length LEN in place. */
+void
+svn_authz__reverse_string(char *string, apr_size_t len);
+
/*
* Authorization lookup
Modified: subversion/branches/authzperf/subversion/libsvn_repos/authz_parse.c
URL:
http://svn.apache.org/viewvc/subversion/branches/authzperf/subversion/libsvn_repos/authz_parse.c?rev=1618826&r1=1618825&r2=1618826&view=diff
==============================================================================
--- subversion/branches/authzperf/subversion/libsvn_repos/authz_parse.c
(original)
+++ subversion/branches/authzperf/subversion/libsvn_repos/authz_parse.c Tue Aug
19 09:51:17 2014
@@ -1005,3 +1005,17 @@ svn_authz__tng_parse(svn_authz_tng_t **a
apr_pool_destroy(cb->parser_pool);
return SVN_NO_ERROR;
}
+
+
+void
+svn_authz__reverse_string(char *string, apr_size_t len)
+{
+ char *left = string;
+ char *right = string + len - 1;
+ for (; left < right; ++left, --right)
+ {
+ char c = *left;
+ *left = *right;
+ *right = c;
+ }
+}