Author: julianfoad
Date: Thu Mar 5 09:06:43 2015
New Revision: 1664285
URL: http://svn.apache.org/r1664285
Log:
On the 'move-tracking-2' branch: Make some use of the convenient array and
hash iteration and accessors added in r1664127.
* subversion/libsvn_delta/branch.c
(svn_branch_repos_create,
svn_branch_revision_root_create,
svn_branch_family_create,
svn_branch_family_add_new_subfamily,
family_create_branch_sibling,
family_find_branch_sibling,
svn_branch_family_get_branch_instances,
svn_branch_purge_r,
family_is_child,
svn_branch_get_subbranches,
svn_branch_get_all_sub_branches,
svn_branch_get_subbranch_at_eid,
svn_branch_add_new_branch_instance,
svn_branch_delete_branch_instance_r,
svn_branch_family_parse,
svn_branch_revision_root_parse,
svn_branch_family_serialize,
svn_branch_branch_subtree_r2): Use them.
* subversion/libsvn_delta/compat3e.c
(get_unsorted_paths,
convert_branch_to_paths_r): Use them.
* subversion/svnmover/svnmover.c
(family_list_branch_instances,
svn_branch_diff,
get_subbranches,
svn_branch_find_predecessor_el_rev): Use them.
Modified:
subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c
subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3e.c
subversion/branches/move-tracking-2/subversion/svnmover/svnmover.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=1664285&r1=1664284&r2=1664285&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c Thu
Mar 5 09:06:43 2015
@@ -29,6 +29,7 @@
#include "svn_dirent_uri.h"
#include "svn_hash.h"
#include "svn_props.h"
+#include "svn_iter.h"
#include "private/svn_element.h"
#include "private/svn_branch.h"
@@ -65,7 +66,7 @@ svn_branch_repos_create(apr_pool_t *resu
{
svn_branch_repos_t *repos = apr_pcalloc(result_pool, sizeof(*repos));
- repos->rev_roots = apr_array_make(result_pool, 1, sizeof(void *));
+ repos->rev_roots = svn_array_make(result_pool);
repos->families = apr_hash_make(result_pool);
repos->pool = result_pool;
return repos;
@@ -109,7 +110,7 @@ svn_branch_revision_root_create(svn_bran
rev_root->repos = repos;
rev_root->rev = rev;
rev_root->root_branch = root_branch;
- rev_root->branch_instances = apr_array_make(result_pool, 1, sizeof(void *));
+ rev_root->branch_instances = svn_array_make(result_pool);
return rev_root;
}
@@ -136,8 +137,8 @@ svn_branch_family_create(svn_branch_repo
f->fid = fid;
f->repos = repos;
- f->branch_siblings = apr_array_make(result_pool, 1, sizeof(void *));
- f->sub_families = apr_array_make(result_pool, 1, sizeof(void *));
+ f->branch_siblings = svn_array_make(result_pool);
+ f->sub_families = svn_array_make(result_pool);
f->first_bid = first_bid;
f->next_bid = next_bid;
f->first_eid = first_eid;
@@ -169,7 +170,7 @@ svn_branch_family_add_new_subfamily(svn_
/* Register the family */
repos_register_family(repos, family);
- APR_ARRAY_PUSH(outer_family->sub_families, void *) = family;
+ SVN_ARRAY_PUSH(outer_family->sub_families) = family;
assert_branch_family_invariants(outer_family);
assert_branch_family_invariants(family);
@@ -193,7 +194,7 @@ family_create_branch_sibling(svn_branch_
/* ROOT_RRPATH must not be within another branch of the family. */
/* Register the branch */
- APR_ARRAY_PUSH(family->branch_siblings, void *) = branch_sibling;
+ SVN_ARRAY_PUSH(family->branch_siblings) = branch_sibling;
assert_branch_family_invariants(family);
return branch_sibling;
@@ -207,16 +208,11 @@ static svn_branch_sibling_t *
family_find_branch_sibling(svn_branch_family_t *family,
int bid)
{
- int i;
+ SVN_ITER_T(svn_branch_sibling_t) *si;
- for (i = 0; i < family->branch_siblings->nelts; i++)
- {
- svn_branch_sibling_t *this
- = APR_ARRAY_IDX(family->branch_siblings, i, void *);
-
- if (this->bid == bid)
- return this;
- }
+ for (SVN_ARRAY_ITER_NO_POOL(si, family->branch_siblings))
+ if (si->val->bid == bid)
+ return si->val;
return NULL;
}
@@ -264,20 +260,12 @@ svn_branch_family_get_branch_instances(
svn_branch_family_t *family,
apr_pool_t *result_pool)
{
- apr_array_header_t *rev_branch_instances = rev_root->branch_instances;
- apr_array_header_t *fam_branch_instances
- = apr_array_make(result_pool, 0, sizeof(void *));
- int i;
-
- for (i = 0; i < rev_branch_instances->nelts; i++)
- {
- svn_branch_instance_t *branch
- = APR_ARRAY_IDX(rev_branch_instances, i, svn_branch_instance_t *);
-
- if (branch->sibling_defn->family == family)
- APR_ARRAY_PUSH(fam_branch_instances, void *) = branch;
- }
+ svn_array_t *fam_branch_instances = svn_array_make(result_pool);
+ SVN_ITER_T(svn_branch_instance_t) *bi;
+ for (SVN_ARRAY_ITER_NO_POOL(bi, rev_root->branch_instances))
+ if (bi->val->sibling_defn->family == family)
+ SVN_ARRAY_PUSH(fam_branch_instances) = bi->val;
return fam_branch_instances;
}
@@ -596,17 +584,16 @@ void
svn_branch_purge_r(svn_branch_instance_t *branch,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *subbranches
- = svn_branch_get_all_sub_branches(branch, scratch_pool, scratch_pool);
- int i;
+ SVN_ITER_T(svn_branch_instance_t) *bi;
/* first, remove elements that have no parent element */
svn_branch_map_purge_orphans(branch, scratch_pool);
/* second, remove subbranches that have no subbranch-root element */
- for (i = 0; i < subbranches->nelts; i++)
+ for (SVN_ARRAY_ITER(bi, svn_branch_get_all_sub_branches(
+ branch, scratch_pool, scratch_pool), scratch_pool))
{
- svn_branch_instance_t *b = APR_ARRAY_IDX(subbranches, i, void *);
+ svn_branch_instance_t *b = bi->val;
if (svn_branch_map_get(branch, b->outer_eid))
{
@@ -841,16 +828,11 @@ static svn_boolean_t
family_is_child(svn_branch_family_t *parent_family,
svn_branch_family_t *child_family)
{
- int i;
+ SVN_ITER_T(svn_branch_family_t) *fi;
- for (i = 0; i < parent_family->sub_families->nelts; i++)
- {
- svn_branch_family_t *sub_family
- = APR_ARRAY_IDX(parent_family->sub_families, i, void *);
-
- if (sub_family == child_family)
- return TRUE;
- }
+ for (SVN_ARRAY_ITER_NO_POOL(fi, parent_family->sub_families))
+ if (fi->val == child_family)
+ return TRUE;
return FALSE;
}
@@ -863,26 +845,21 @@ svn_branch_get_subbranches(const svn_bra
svn_branch_family_t *family = branch->sibling_defn->family;
const char *top_rrpath = svn_branch_get_rrpath_by_eid(branch, eid,
scratch_pool);
- apr_array_header_t *sub_branches = apr_array_make(result_pool, 0,
- sizeof(void *));
- int i;
-
- for (i = 0; i < branch->rev_root->branch_instances->nelts; i++)
- {
- svn_branch_instance_t *sub_branch
- = APR_ARRAY_IDX(branch->rev_root->branch_instances, i, void *);
- svn_branch_family_t *sub_branch_family =
sub_branch->sibling_defn->family;
+ svn_array_t *subbranches = svn_array_make(result_pool);
+ SVN_ITER_T(svn_branch_instance_t) *bi;
+
+ for (SVN_ARRAY_ITER(bi, branch->rev_root->branch_instances, scratch_pool))
+ {
+ svn_branch_family_t *sub_branch_family = bi->val->sibling_defn->family;
const char *sub_branch_root_rrpath
- = svn_branch_get_root_rrpath(sub_branch, scratch_pool);
+ = svn_branch_get_root_rrpath(bi->val, scratch_pool);
/* Is it an immediate child at or below EID? */
if (family_is_child(family, sub_branch_family)
&& svn_relpath_skip_ancestor(top_rrpath, sub_branch_root_rrpath))
- {
- APR_ARRAY_PUSH(sub_branches, void *) = sub_branch;
- }
+ SVN_ARRAY_PUSH(subbranches) = bi->val;
}
- return sub_branches;
+ return subbranches;
}
apr_array_header_t *
@@ -890,20 +867,14 @@ svn_branch_get_all_sub_branches(const sv
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *subbranches = apr_array_make(result_pool, 0,
- sizeof(void *));
- int i;
+ svn_array_t *subbranches = svn_array_make(result_pool);
+ SVN_ITER_T(svn_branch_instance_t) *bi;
- for (i = 0; i < branch->rev_root->branch_instances->nelts; i++)
+ for (SVN_ARRAY_ITER(bi, branch->rev_root->branch_instances, scratch_pool))
{
- svn_branch_instance_t *b
- = APR_ARRAY_IDX(branch->rev_root->branch_instances, i, void *);
-
/* Is it an immediate child? */
- if (b->outer_branch == branch)
- {
- APR_ARRAY_PUSH(subbranches, void *) = b;
- }
+ if (bi->val->outer_branch == branch)
+ SVN_ARRAY_PUSH(subbranches) = bi->val;
}
return subbranches;
}
@@ -913,22 +884,15 @@ svn_branch_get_subbranch_at_eid(svn_bran
int eid,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *subbranches;
- int i;
+ SVN_ITER_T(svn_branch_instance_t) *bi;
/* TODO: more efficient to search in branch->rev_root->branch_instances */
- subbranches = svn_branch_get_all_sub_branches(branch,
- scratch_pool, scratch_pool);
- for (i = 0; i < subbranches->nelts; i++)
+ for (SVN_ARRAY_ITER(bi, svn_branch_get_all_sub_branches(
+ branch, scratch_pool, scratch_pool), scratch_pool))
{
- svn_branch_instance_t *subbranch = APR_ARRAY_IDX(subbranches, i, void *);
-
- if (subbranch->outer_eid == eid)
- {
- return subbranch;
- }
+ if (bi->val->outer_eid == eid)
+ return bi->val;
}
-
return NULL;
}
@@ -944,8 +908,7 @@ svn_branch_add_new_branch_instance(svn_b
= svn_branch_instance_create(branch_sibling, outer_branch->rev_root,
outer_branch, outer_eid, family->pool);
- APR_ARRAY_PUSH(branch_instance->rev_root->branch_instances, void *)
- = branch_instance;
+ SVN_ARRAY_PUSH(branch_instance->rev_root->branch_instances) =
branch_instance;
return branch_instance;
}
@@ -958,19 +921,17 @@ svn_branch_revision_root_delete_branch_i
svn_branch_instance_t *branch,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *rev_branches = rev_root->branch_instances;
- int i;
+ SVN_ITER_T(svn_branch_instance_t) *bi;
SVN_ERR_ASSERT_NO_RETURN(branch->rev_root == rev_root);
- for (i = 0; i < rev_branches->nelts; i++)
+ for (SVN_ARRAY_ITER(bi, rev_root->branch_instances, scratch_pool))
{
- svn_branch_instance_t *b = APR_ARRAY_IDX(rev_branches, i, void *);
-
- if (b == branch)
+ if (bi->val == branch)
{
- SVN_DBG(("deleting branch-instance b%d e%d", b->sibling_defn->bid,
b->sibling_defn->root_eid));
- svn_sort__array_delete(rev_branches, i, 1);
+ SVN_DBG(("deleting branch-instance b%d e%d",
+ bi->val->sibling_defn->bid,
bi->val->sibling_defn->root_eid));
+ svn_sort__array_delete(rev_root->branch_instances, bi->i, 1);
break;
}
}
@@ -980,16 +941,12 @@ void
svn_branch_delete_branch_instance_r(svn_branch_instance_t *branch,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *subbranches;
- int i;
+ SVN_ITER_T(svn_branch_instance_t) *bi;
- subbranches = svn_branch_get_all_sub_branches(branch,
- scratch_pool, scratch_pool);
- for (i = 0; i < subbranches->nelts; i++)
+ for (SVN_ARRAY_ITER(bi, svn_branch_get_all_sub_branches(
+ branch, scratch_pool, scratch_pool), scratch_pool))
{
- svn_branch_instance_t *subbranch = APR_ARRAY_IDX(subbranches, i, void *);
-
- svn_branch_delete_branch_instance_r(subbranch, scratch_pool);
+ svn_branch_delete_branch_instance_r(bi->val, scratch_pool);
}
svn_branch_revision_root_delete_branch_instance(branch->outer_branch->rev_root,
@@ -1158,7 +1115,7 @@ svn_branch_family_parse(svn_branch_famil
= repos_get_family_by_id(repos, *parent_fid);
SVN_ERR_ASSERT(parent_family);
- APR_ARRAY_PUSH(parent_family->sub_families, void *) = family;
+ SVN_ARRAY_PUSH(parent_family->sub_families) = family;
}
}
@@ -1209,7 +1166,7 @@ svn_branch_revision_root_parse(svn_branc
SVN_ERR(svn_branch_instance_parse(&branch, family, rev_root, stream,
family->pool, scratch_pool));
- APR_ARRAY_PUSH(branch->rev_root->branch_instances, void *) = branch;
+ SVN_ARRAY_PUSH(branch->rev_root->branch_instances) = branch;
if (family->fid == root_fid)
{
branch->rev_root->root_branch = branch;
@@ -1281,20 +1238,13 @@ svn_branch_family_serialize(svn_stream_t
int parent_fid,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *branch_instances
- = apr_array_make(scratch_pool, 0, sizeof(void *));
- int i;
-
- for (i = 0; i < rev_root->branch_instances->nelts; i++)
- {
- svn_branch_instance_t *branch
- = APR_ARRAY_IDX(rev_root->branch_instances, i, void *);
-
- if (branch->sibling_defn->family == family)
- {
- APR_ARRAY_PUSH(branch_instances, void *) = branch;
- }
- }
+ svn_array_t *branch_instances = svn_array_make(scratch_pool);
+ SVN_ITER_T(svn_branch_instance_t) *bi;
+ SVN_ITER_T(svn_branch_family_t) *fi;
+
+ for (SVN_ARRAY_ITER(bi, rev_root->branch_instances, scratch_pool))
+ if (bi->val->sibling_defn->family == family)
+ SVN_ARRAY_PUSH(branch_instances) = bi->val;
SVN_ERR(svn_stream_printf(stream, scratch_pool,
"f%d: bids %d %d eids %d %d "
@@ -1305,21 +1255,12 @@ svn_branch_family_serialize(svn_stream_t
parent_fid,
branch_instances->nelts));
- for (i = 0; i < branch_instances->nelts; i++)
- {
- svn_branch_instance_t *branch
- = APR_ARRAY_IDX(branch_instances, i, void *);
+ for (SVN_ARRAY_ITER(bi, branch_instances, scratch_pool))
+ SVN_ERR(svn_branch_instance_serialize(stream, bi->val, scratch_pool));
- SVN_ERR(svn_branch_instance_serialize(stream, branch, scratch_pool));
- }
-
- for (i = 0; i < family->sub_families->nelts; i++)
- {
- svn_branch_family_t *f = APR_ARRAY_IDX(family->sub_families, i, void *);
-
- SVN_ERR(svn_branch_family_serialize(stream, rev_root, f, family->fid,
- scratch_pool));
- }
+ for (SVN_ARRAY_ITER(fi, family->sub_families, scratch_pool))
+ SVN_ERR(svn_branch_family_serialize(stream, rev_root, fi->val, family->fid,
+ scratch_pool));
return SVN_NO_ERROR;
}
@@ -1357,8 +1298,7 @@ svn_branch_find_nested_branch_element_by
{
const char *branch_root_path = svn_branch_get_root_rrpath(root_branch,
scratch_pool);
- apr_array_header_t *branch_instances;
- int i;
+ SVN_ITER_T(svn_branch_instance_t) *bi;
if (! svn_relpath_skip_ancestor(branch_root_path, rrpath))
{
@@ -1371,18 +1311,16 @@ svn_branch_find_nested_branch_element_by
/* The path we're looking for is (path-wise) in this branch. See if it
is also in a sub-branch (recursively). */
- branch_instances = svn_branch_get_all_sub_branches(root_branch,
- scratch_pool,
scratch_pool);
- for (i = 0; i < branch_instances->nelts; i++)
+ for (SVN_ARRAY_ITER(bi, svn_branch_get_all_sub_branches(
+ root_branch, scratch_pool, scratch_pool),
+ scratch_pool))
{
- svn_branch_instance_t *this_branch
- = APR_ARRAY_IDX(branch_instances, i, void *);
svn_branch_instance_t *sub_branch;
int sub_branch_eid;
svn_branch_find_nested_branch_element_by_rrpath(&sub_branch,
&sub_branch_eid,
- this_branch, rrpath,
+ bi->val, rrpath,
scratch_pool);
if (sub_branch)
{
@@ -1413,7 +1351,7 @@ svn_branch_repos_find_el_rev_by_path_rev
return svn_error_createf(SVN_ERR_FS_NO_SUCH_REVISION, NULL,
_("No such revision %ld"), revnum);
- rev_root = APR_ARRAY_IDX(repos->rev_roots, revnum, void *);
+ rev_root = svn_array_get(repos->rev_roots, revnum);
el_rev->rev = revnum;
svn_branch_find_nested_branch_element_by_rrpath(&el_rev->branch,
&el_rev->eid,
rev_root->root_branch,
rrpath,
@@ -1541,15 +1479,13 @@ svn_branch_branch_subtree_r2(svn_branch_
/* branch any subbranches under FROM_BRANCH:FROM_EID */
{
- apr_array_header_t *subbranches;
- int i;
+ SVN_ITER_T(svn_branch_instance_t) *bi;
- subbranches = svn_branch_get_subbranches(from_branch, from_eid,
- scratch_pool, scratch_pool);
- for (i = 0; i < subbranches->nelts; i++)
+ for (SVN_ARRAY_ITER(bi, svn_branch_get_subbranches(
+ from_branch, from_eid, scratch_pool,
scratch_pool),
+ scratch_pool))
{
- svn_branch_instance_t *subbranch
- = APR_ARRAY_IDX(subbranches, i, void *);
+ svn_branch_instance_t *subbranch = bi->val;
/* branch this subbranch into NEW_BRANCH (recursing) */
SVN_ERR(svn_branch_branch_subtree_r2(NULL,
Modified: subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3e.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3e.c?rev=1664285&r1=1664284&r2=1664285&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3e.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3e.c Thu
Mar 5 09:06:43 2015
@@ -29,6 +29,7 @@
#include "svn_dirent_uri.h"
#include "svn_path.h"
#include "svn_hash.h"
+#include "svn_iter.h"
#include "svn_props.h"
#include "svn_pools.h"
@@ -393,8 +394,7 @@ get_unsorted_paths(apr_hash_t *changes,
const char *base_relpath,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *paths
- = apr_array_make(scratch_pool, apr_hash_count(changes), sizeof(char *));
+ svn_array_t *paths = svn_array_make(scratch_pool);
apr_hash_index_t *hi;
/* Build a new array with just the paths, trimmed to relative paths for
@@ -407,7 +407,7 @@ get_unsorted_paths(apr_hash_t *changes,
if (this_relpath)
{
- APR_ARRAY_PUSH(paths, const char *) = this_relpath;
+ SVN_ARRAY_PUSH(paths) = this_relpath;
}
}
@@ -1051,8 +1051,7 @@ convert_branch_to_paths_r(apr_hash_t *pa
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *sub_branches;
- int i;
+ SVN_ITER_T(svn_branch_instance_t) *bi;
/*SVN_DBG(("[%d] branch={b%de%d at '%s'}", idx,
branch->sibling_defn->bid, branch->sibling_defn->root_eid,
branch->branch_root_rrpath));*/
@@ -1060,13 +1059,10 @@ convert_branch_to_paths_r(apr_hash_t *pa
result_pool, scratch_pool);
/* Rercurse into sub-branches */
- sub_branches = svn_branch_get_all_sub_branches(branch,
- scratch_pool, scratch_pool);
- for (i = 0; i < sub_branches->nelts; i++)
+ for (SVN_ARRAY_ITER(bi, svn_branch_get_all_sub_branches(
+ branch, scratch_pool, scratch_pool), scratch_pool))
{
- svn_branch_instance_t *b = APR_ARRAY_IDX(sub_branches, i, void *);
-
- convert_branch_to_paths_r(paths_union, b, result_pool, scratch_pool);
+ convert_branch_to_paths_r(paths_union, bi->val, result_pool,
scratch_pool);
}
}
Modified: subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c?rev=1664285&r1=1664284&r2=1664285&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c
(original)
+++ subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c Thu Mar
5 09:06:43 2015
@@ -43,6 +43,7 @@
#include "svn_private_config.h"
#include "svn_hash.h"
+#include "svn_iter.h"
#include "svn_client.h"
#include "svn_cmdline.h"
#include "svn_config.h"
@@ -376,9 +377,7 @@ family_list_branch_instances(svn_branch_
svn_boolean_t verbose,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *fam_branch_instances
- = svn_branch_family_get_branch_instances(rev_root, family, scratch_pool);
- int b;
+ SVN_ITER_T(svn_branch_instance_t) *bi;
if (verbose)
{
@@ -393,10 +392,10 @@ family_list_branch_instances(svn_branch_
family->fid);
}
- for (b = 0; b < fam_branch_instances->nelts; b++)
+ for (SVN_ARRAY_ITER(bi, svn_branch_family_get_branch_instances(
+ rev_root, family, scratch_pool), scratch_pool))
{
- svn_branch_instance_t *branch
- = APR_ARRAY_IDX(fam_branch_instances, b, svn_branch_instance_t *);
+ svn_branch_instance_t *branch = bi->val;
int eid;
if (verbose)
@@ -432,16 +431,12 @@ family_list_branch_instances(svn_branch_
if (recursive)
{
- apr_array_header_t *sub_families
- = svn_branch_family_get_children(family, scratch_pool);
- int f;
+ SVN_ITER_T(svn_branch_family_t) *fi;
- for (f = 0; f < sub_families->nelts; f++)
+ for (SVN_ARRAY_ITER(fi, svn_branch_family_get_children(
+ family, scratch_pool), scratch_pool))
{
- svn_branch_family_t *sub_family
- = APR_ARRAY_IDX(sub_families, f, svn_branch_family_t *);
-
- SVN_ERR(family_list_branch_instances(rev_root, sub_family, recursive,
+ SVN_ERR(family_list_branch_instances(rev_root, fi->val, recursive,
verbose, scratch_pool));
}
}
@@ -960,9 +955,8 @@ svn_branch_diff(svn_editor3_t *editor,
{
apr_hash_t *diff_yca_tgt;
int first_eid, next_eid, eid;
- apr_array_header_t *diff_changes
- = apr_array_make(scratch_pool, 0, sizeof(void *));
- int i;
+ svn_array_t *diff_changes = svn_array_make(scratch_pool);
+ SVN_ITER_T(diff_item_t) *ai;
if (left->branch->sibling_defn->family->fid
!= right->branch->sibling_defn->family->fid)
@@ -1043,18 +1037,16 @@ svn_branch_diff(svn_editor3_t *editor,
item->from = from;
item->subbranch_str = subbranch_str(e0 ? left->branch :
right->branch,
eid, scratch_pool);
- APR_ARRAY_PUSH(diff_changes, void *) = item;
+ SVN_ARRAY_PUSH(diff_changes) = item;
}
}
- svn_sort__array(diff_changes, diff_ordering);
-
if (header && diff_changes->nelts)
printf("%s%s", prefix, header);
- for (i = 0; i < diff_changes->nelts; i++)
+ for (SVN_ARRAY_ITER_SORTED(ai, diff_changes, diff_ordering, scratch_pool))
{
- diff_item_t *item = APR_ARRAY_IDX(diff_changes, i, void *);
+ diff_item_t *item = ai->val;
printf("%s%c%c%c %s%s%s\n",
prefix,
@@ -1082,13 +1074,13 @@ get_subbranches(svn_branch_instance_t *b
if (branch)
{
- apr_array_header_t *subbranches
- = svn_branch_get_all_sub_branches(branch, result_pool, scratch_pool);
- int i;
+ SVN_ITER_T(svn_branch_instance_t) *bi;
- for (i = 0; i < subbranches->nelts; i++)
+ for (SVN_ARRAY_ITER(bi, svn_branch_get_all_sub_branches(
+ branch, result_pool, scratch_pool),
+ scratch_pool))
{
- svn_branch_instance_t *b = APR_ARRAY_IDX(subbranches, i, void *);
+ svn_branch_instance_t *b = bi->val;
int *bid = apr_pmemdup(result_pool, &b->sibling_defn->bid, sizeof
(*bid));
apr_hash_set(result, bid, sizeof (*bid), b);
@@ -1316,7 +1308,7 @@ svn_branch_find_predecessor_el_rev(svn_b
return NULL;
branch_id = svn_branch_instance_get_id(old_el_rev->branch, result_pool);
- rev_root = APR_ARRAY_IDX(repos->rev_roots, old_el_rev->rev - 1, void *);
+ rev_root = svn_array_get(repos->rev_roots, old_el_rev->rev - 1);
branch = svn_branch_revision_root_find_branch_by_id(rev_root, branch_id,
result_pool);