You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2010/11/24 16:14:08 UTC

svn commit: r1038640 - /subversion/trunk/subversion/libsvn_subr/dirent_uri.c

Author: julianfoad
Date: Wed Nov 24 15:14:08 2010
New Revision: 1038640

URL: http://svn.apache.org/viewvc?rev=1038640&view=rev
Log:
In dirent_uri.c, create and use relpath_is_canonical(), a local version of
svn_relpath_is_canonical() that doesn't require a pool parameter.  (The
public API requires a pool, although it doesn't use it.)  This will simplify
the writing of assertions.

* subversion/libsvn_subr/dirent_uri.c
  (relpath_is_canonical): New name for the guts of svn_relpath_is_canonical.
  (svn_relpath_is_canonical): Re-implement as a trivial wrapper.
  (svn_relpath_basename): Use relpath_is_canonical(), and so enable
    assertion checking even when no pool is passed in.
  (...): Use relpath_is_canonical as a direct replacement.

Modified:
    subversion/trunk/subversion/libsvn_subr/dirent_uri.c

Modified: subversion/trunk/subversion/libsvn_subr/dirent_uri.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/dirent_uri.c?rev=1038640&r1=1038639&r2=1038640&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/dirent_uri.c (original)
+++ subversion/trunk/subversion/libsvn_subr/dirent_uri.c Wed Nov 24 15:14:08 2010
@@ -63,7 +63,13 @@ typedef enum {
   type_relpath
 } path_type_t;
 
- 
+
+/**** Forward declarations *****/
+
+static svn_boolean_t
+relpath_is_canonical(const char *relpath);
+
+
 /**** Internal implementation functions *****/
 
 /* Return an internal-style new path based on PATH, allocated in POOL.
@@ -1189,8 +1195,8 @@ svn_relpath_join(const char *base,
   apr_size_t clen = strlen(component);
   char *path;
 
-  assert(svn_relpath_is_canonical(base, pool));
-  assert(svn_relpath_is_canonical(component, pool));
+  assert(relpath_is_canonical(base));
+  assert(relpath_is_canonical(component));
 
   /* If either is empty return the other */
   if (blen == 0)
@@ -1316,7 +1322,7 @@ svn_relpath_dirname(const char *relpath,
 {
   apr_size_t len = strlen(relpath);
 
-  assert(svn_relpath_is_canonical(relpath, pool));
+  assert(relpath_is_canonical(relpath));
 
   return apr_pstrmemdup(pool, relpath,
                         relpath_previous_segment(relpath, len));
@@ -1329,7 +1335,7 @@ svn_relpath_basename(const char *relpath
   apr_size_t len = strlen(relpath);
   apr_size_t start;
 
-  assert(!pool || svn_relpath_is_canonical(relpath, pool));
+  assert(relpath_is_canonical(relpath));
 
   start = len;
   while (start > 0 && relpath[start - 1] != '/')
@@ -1737,12 +1743,11 @@ svn_dirent_is_canonical(const char *dire
     }
 #endif /* SVN_USE_DOS_PATHS */
 
-  return svn_relpath_is_canonical(ptr, pool);
+  return relpath_is_canonical(ptr);
 }
 
-svn_boolean_t
-svn_relpath_is_canonical(const char *relpath,
-                         apr_pool_t *pool)
+static svn_boolean_t
+relpath_is_canonical(const char *relpath)
 {
   const char *ptr = relpath, *seg = relpath;
 
@@ -1787,6 +1792,13 @@ svn_relpath_is_canonical(const char *rel
 }
 
 svn_boolean_t
+svn_relpath_is_canonical(const char *relpath,
+                         apr_pool_t *pool)
+{
+  return relpath_is_canonical(relpath);
+}
+
+svn_boolean_t
 svn_uri_is_canonical(const char *uri, apr_pool_t *pool)
 {
   const char *ptr = uri, *seg = uri;
@@ -2452,8 +2464,7 @@ svn_boolean_t
 svn_fspath__is_canonical(const char *fspath,
                          apr_pool_t *scratch_pool)
 {
-  return fspath[0] == '/'
-    && svn_relpath_is_canonical(fspath + 1, scratch_pool);
+  return fspath[0] == '/' && relpath_is_canonical(fspath + 1);
 }
 
 char *
@@ -2463,7 +2474,7 @@ svn_fspath__join(const char *fspath,
 {
   char *result;
   assert(svn_fspath__is_canonical(fspath, result_pool));
-  assert(svn_relpath_is_canonical(relpath, result_pool));
+  assert(relpath_is_canonical(relpath));
 
 #ifdef FSPATH_USE_URI
   result = svn_uri_join(fspath, relpath, result_pool);
@@ -2496,7 +2507,7 @@ svn_fspath__is_child(const char *parent_
   result = svn_relpath_is_child(parent_fspath + 1, child_fspath + 1, pool);
 #endif
 
-  assert(result == NULL || svn_relpath_is_canonical(result, pool));
+  assert(result == NULL || relpath_is_canonical(result));
   return result;
 }