diff options
Diffstat (limited to 'contrib/subversion/subversion/libsvn_repos/rev_hunt.c')
-rw-r--r-- | contrib/subversion/subversion/libsvn_repos/rev_hunt.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/contrib/subversion/subversion/libsvn_repos/rev_hunt.c b/contrib/subversion/subversion/libsvn_repos/rev_hunt.c index 77b1f2a7d74d..2a8dc3ee9d32 100644 --- a/contrib/subversion/subversion/libsvn_repos/rev_hunt.c +++ b/contrib/subversion/subversion/libsvn_repos/rev_hunt.c @@ -726,23 +726,6 @@ svn_repos_trace_node_locations(svn_fs_t *fs, if (! prev_path) break; - if (authz_read_func) - { - svn_boolean_t readable; - svn_fs_root_t *tmp_root; - - SVN_ERR(svn_fs_revision_root(&tmp_root, fs, revision, currpool)); - SVN_ERR(authz_read_func(&readable, tmp_root, path, - authz_read_baton, currpool)); - if (! readable) - { - svn_pool_destroy(lastpool); - svn_pool_destroy(currpool); - - return SVN_NO_ERROR; - } - } - /* Assign the current path to all younger revisions until we reach the copy target rev. */ while ((revision_ptr < revision_ptr_end) @@ -765,6 +748,20 @@ svn_repos_trace_node_locations(svn_fs_t *fs, path = prev_path; revision = prev_rev; + if (authz_read_func) + { + svn_boolean_t readable; + SVN_ERR(svn_fs_revision_root(&root, fs, revision, currpool)); + SVN_ERR(authz_read_func(&readable, root, path, + authz_read_baton, currpool)); + if (!readable) + { + svn_pool_destroy(lastpool); + svn_pool_destroy(currpool); + return SVN_NO_ERROR; + } + } + /* Clear last pool and switch. */ svn_pool_clear(lastpool); tmppool = lastpool; |