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 2015/11/10 12:27:37 UTC

svn commit: r1713616 - /subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c

Author: julianfoad
Date: Tue Nov 10 11:27:37 2015
New Revision: 1713616

URL: http://svn.apache.org/viewvc?rev=1713616&view=rev
Log:
On the 'move-tracking-2' branch: Make the remaining branch state functions
work with derived branch classes by not directly accessing private data.

* subversion/libsvn_delta/branch.c
  (svn_branch_root_eid,
   svn_branch_get_path_by_eid,
   svn_branch_get_eid_by_path): Use public accessor methods.

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

Modified: subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c?rev=1713616&r1=1713615&r2=1713616&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c Tue Nov 10 11:27:37 2015
@@ -848,7 +848,11 @@ svn_branch_get_id(const svn_branch_state
 int
 svn_branch_root_eid(const svn_branch_state_t *branch)
 {
-  return branch->priv->element_tree->root_eid;
+  svn_element_tree_t *elements;
+
+  svn_error_clear(svn_branch_state_get_elements(branch, &elements,
+                                                NULL/*scratch_pool*/));
+  return elements->root_eid;
 }
 
 svn_branch_el_rev_id_t *
@@ -1078,21 +1082,13 @@ svn_branch_get_path_by_eid(const svn_bra
                            int eid,
                            apr_pool_t *result_pool)
 {
-  const char *path = "";
-  svn_element_content_t *element;
+  svn_element_tree_t *elements;
 
   SVN_ERR_ASSERT_NO_RETURN(EID_IS_ALLOCATED(branch, eid));
-  SVN_ERR_ASSERT_NO_RETURN(branch->priv->is_flat);
+  /*SVN_ERR_ASSERT_NO_RETURN(branch->priv->is_flat);*/
 
-  for (; ! IS_BRANCH_ROOT_EID(branch, eid); eid = element->parent_eid)
-    {
-      element = branch_get_element(branch, eid);
-      if (! element)
-        return NULL;
-      path = svn_relpath_join(element->name, path, result_pool);
-    }
-  SVN_ERR_ASSERT_NO_RETURN(IS_BRANCH_ROOT_EID(branch, eid));
-  return path;
+  svn_error_clear(svn_branch_state_get_elements(branch, &elements, result_pool));
+  return svn_element_tree_get_path_by_eid(elements, eid, result_pool);
 }
 
 int
@@ -1100,17 +1096,19 @@ svn_branch_get_eid_by_path(const svn_bra
                            const char *path,
                            apr_pool_t *scratch_pool)
 {
+  svn_element_tree_t *elements;
   apr_hash_index_t *hi;
 
-  SVN_ERR_ASSERT_NO_RETURN(branch->priv->is_flat);
+  /*SVN_ERR_ASSERT_NO_RETURN(branch->priv->is_flat);*/
 
   /* ### This is a crude, linear search */
-  for (hi = apr_hash_first(scratch_pool, branch->priv->element_tree->e_map);
+  svn_error_clear(svn_branch_state_get_elements(branch, &elements, scratch_pool));
+  for (hi = apr_hash_first(scratch_pool, elements->e_map);
        hi; hi = apr_hash_next(hi))
     {
       int eid = svn_int_hash_this_key(hi);
-      const char *this_path = svn_branch_get_path_by_eid(branch, eid,
-                                                         scratch_pool);
+      const char *this_path = svn_element_tree_get_path_by_eid(elements, eid,
+                                                               scratch_pool);
 
       if (! this_path)
         {