Author: julianfoad
Date: Tue Feb 24 15:34:23 2015
New Revision: 1661987

URL: http://svn.apache.org/r1661987
Log:
On the 'move-tracking-2' branch: Factor out some assertion checking.

* subversion/libsvn_delta/branching.c
  (BRANCH_FAMILY_HAS_ELEMENT,
   BRANCHES_IN_SAME_FAMILY): New macros, factored out...
  (...everywhere...): ... from many functions.

Modified:
    subversion/branches/move-tracking-2/subversion/libsvn_delta/branching.c

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_delta/branching.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_delta/branching.c?rev=1661987&r1=1661986&r2=1661987&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_delta/branching.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_delta/branching.c Tue 
Feb 24 15:34:23 2015
@@ -34,6 +34,15 @@
 #include "svn_private_config.h"
 
 
+#define BRANCH_FAMILY_HAS_ELEMENT(branch, eid) \
+   ((eid) >= (branch)->sibling_defn->family->first_eid \
+    && (eid) < (branch)->sibling_defn->family->next_eid)
+
+#define BRANCHES_IN_SAME_FAMILY(branch1, branch2) \
+  ((branch1)->sibling_defn->family->fid \
+   == (branch2)->sibling_defn->family->fid)
+
+
 svn_branch_repos_t *
 svn_branch_repos_create(apr_pool_t *result_pool)
 {
@@ -371,8 +380,7 @@ branch_map_node_validate(const svn_branc
     (eid == branch->sibling_defn->root_eid)
     ? (node->parent_eid == -1)
     : (node->parent_eid != eid
-       && node->parent_eid >= branch->sibling_defn->family->first_eid
-       && node->parent_eid < branch->sibling_defn->family->next_eid));
+       && BRANCH_FAMILY_HAS_ELEMENT(branch, node->parent_eid)));
 
   /* Node name must be given, and empty iff EID is the branch root. */
   SVN_ERR_ASSERT_NO_RETURN(
@@ -394,8 +402,7 @@ svn_branch_map_get(const svn_branch_inst
 {
   svn_branch_el_rev_content_t *node;
 
-  SVN_ERR_ASSERT_NO_RETURN(eid >= branch->sibling_defn->family->first_eid
-                           && eid < branch->sibling_defn->family->next_eid);
+  SVN_ERR_ASSERT_NO_RETURN(BRANCH_FAMILY_HAS_ELEMENT(branch, eid));
 
   node = apr_hash_get(branch->e_map, &eid, sizeof(eid));
 
@@ -419,8 +426,7 @@ branch_map_set(svn_branch_instance_t *br
   apr_pool_t *map_pool = apr_hash_pool_get(branch->e_map);
   int *eid_p = apr_pmemdup(map_pool, &eid, sizeof(eid));
 
-  SVN_ERR_ASSERT_NO_RETURN(eid >= branch->sibling_defn->family->first_eid
-                           && eid < branch->sibling_defn->family->next_eid);
+  SVN_ERR_ASSERT_NO_RETURN(BRANCH_FAMILY_HAS_ELEMENT(branch, eid));
   if (node)
     branch_map_node_validate(branch, eid, node);
 
@@ -431,8 +437,7 @@ void
 svn_branch_map_delete(svn_branch_instance_t *branch,
                       int eid)
 {
-  SVN_ERR_ASSERT_NO_RETURN(eid >= branch->sibling_defn->family->first_eid
-                           && eid < branch->sibling_defn->family->next_eid);
+  SVN_ERR_ASSERT_NO_RETURN(BRANCH_FAMILY_HAS_ELEMENT(branch, eid));
 
   branch_map_set(branch, eid, NULL);
 }
@@ -450,8 +455,7 @@ svn_branch_map_update(svn_branch_instanc
                                        map_pool);
 
   /* EID must be a valid element id of the branch family */
-  SVN_ERR_ASSERT_NO_RETURN(eid >= branch->sibling_defn->family->first_eid
-                           && eid < branch->sibling_defn->family->next_eid);
+  SVN_ERR_ASSERT_NO_RETURN(BRANCH_FAMILY_HAS_ELEMENT(branch, eid));
   /* NEW_CONTENT must be specified, either in full or by reference */
   SVN_ERR_ASSERT_NO_RETURN(new_content);
 
@@ -474,8 +478,7 @@ svn_branch_map_update_as_subbranch_root(
                                        map_pool);
 
   /* EID must be a valid element id of the branch family */
-  SVN_ERR_ASSERT_NO_RETURN(eid >= branch->sibling_defn->family->first_eid
-                           && eid < branch->sibling_defn->family->next_eid);
+  SVN_ERR_ASSERT_NO_RETURN(BRANCH_FAMILY_HAS_ELEMENT(branch, eid));
   branch_map_node_validate(branch, eid, node);
 
   /* We don't expect to be called more than once per eid. */
@@ -549,8 +552,7 @@ svn_branch_get_path_by_eid(const svn_bra
   const char *path = "";
   svn_branch_el_rev_content_t *node;
 
-  SVN_ERR_ASSERT_NO_RETURN(eid >= branch->sibling_defn->family->first_eid
-                           && eid < branch->sibling_defn->family->next_eid);
+  SVN_ERR_ASSERT_NO_RETURN(BRANCH_FAMILY_HAS_ELEMENT(branch, eid));
 
   for (; eid != branch->sibling_defn->root_eid; eid = node->parent_eid)
     {
@@ -702,8 +704,7 @@ svn_branch_map_branch_children(svn_branc
 {
   apr_hash_index_t *hi;
 
-  SVN_ERR_ASSERT(from_branch->sibling_defn->family->fid
-                 == to_branch->sibling_defn->family->fid);
+  SVN_ERR_ASSERT(BRANCHES_IN_SAME_FAMILY(from_branch, to_branch));
   SVN_ERR_ASSERT(from_branch != to_branch);
 
   /* The 'from' and 'to' nodes must exist. */
@@ -1377,12 +1378,8 @@ element_relpath_in_subtree(const svn_bra
   const char *element_path;
   const char *relpath = NULL;
 
-  SVN_ERR_ASSERT_NO_RETURN(
-    subtree->eid >= subtree->branch->sibling_defn->family->first_eid
-    && subtree->eid < subtree->branch->sibling_defn->family->next_eid);
-  SVN_ERR_ASSERT_NO_RETURN(
-    eid >= subtree->branch->sibling_defn->family->first_eid
-    && eid < subtree->branch->sibling_defn->family->next_eid);
+  SVN_ERR_ASSERT_NO_RETURN(BRANCH_FAMILY_HAS_ELEMENT(subtree->branch, 
subtree->eid));
+  SVN_ERR_ASSERT_NO_RETURN(BRANCH_FAMILY_HAS_ELEMENT(subtree->branch, eid));
 
   subtree_path = svn_branch_get_path_by_eid(subtree->branch, subtree->eid,
                                             scratch_pool);
@@ -1412,14 +1409,9 @@ svn_branch_subtree_differences(apr_hash_
   /*SVN_DBG(("branch_element_differences(b%d r%ld, b%d r%ld, e%d)",
            left->branch->sibling->bid, left->rev,
            right->branch->sibling->bid, right->rev, right->eid));*/
-  SVN_ERR_ASSERT(left->branch->sibling_defn->family->fid
-                 == right->branch->sibling_defn->family->fid);
-  SVN_ERR_ASSERT_NO_RETURN(
-    left->eid >= left->branch->sibling_defn->family->first_eid
-    && left->eid < left->branch->sibling_defn->family->next_eid);
-  SVN_ERR_ASSERT_NO_RETURN(
-    right->eid >= left->branch->sibling_defn->family->first_eid
-    && right->eid < left->branch->sibling_defn->family->next_eid);
+  SVN_ERR_ASSERT(BRANCHES_IN_SAME_FAMILY(left->branch, right->branch));
+  SVN_ERR_ASSERT(BRANCH_FAMILY_HAS_ELEMENT(left->branch, left->eid));
+  SVN_ERR_ASSERT(BRANCH_FAMILY_HAS_ELEMENT(left->branch, right->eid));
 
   first_eid = left->branch->sibling_defn->family->first_eid;
   next_eid = MAX(left->branch->sibling_defn->family->next_eid,


Reply via email to