Author: julianfoad
Date: Thu Mar 11 07:54:16 2010
New Revision: 921713
URL: http://svn.apache.org/viewvc?rev=921713&view=rev
Log:
Simplify two mergeinfo functions.
* subversion/libsvn_subr/mergeinfo.c
(svn_mergeinfo_inheritable): Replace the body with a call to
svn_mergeinfo_inheritable2().
(svn_mergeinfo__filter_mergeinfo_by_ranges): Simplify logic by calling an
internal function.
Modified:
subversion/trunk/subversion/libsvn_subr/mergeinfo.c
Modified: subversion/trunk/subversion/libsvn_subr/mergeinfo.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/mergeinfo.c?rev=921713&r1=921712&r2=921713&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/mergeinfo.c (original)
+++ subversion/trunk/subversion/libsvn_subr/mergeinfo.c Thu Mar 11 07:54:16 2010
@@ -1552,33 +1552,8 @@ svn_mergeinfo_inheritable(svn_mergeinfo_
svn_revnum_t end,
apr_pool_t *pool)
{
- apr_hash_index_t *hi;
- const void *key;
- apr_ssize_t keylen;
- void *rangelist;
-
- svn_mergeinfo_t inheritable_mergeinfo = apr_hash_make(pool);
- for (hi = apr_hash_first(pool, mergeinfo); hi; hi = apr_hash_next(hi))
- {
- apr_array_header_t *inheritable_rangelist;
- apr_hash_this(hi, &key, &keylen, &rangelist);
- if (!path || svn_path_compare_paths(path, (const char *)key) == 0)
- SVN_ERR(svn_rangelist_inheritable(&inheritable_rangelist,
- (apr_array_header_t *) rangelist,
- start, end, pool));
- else
- inheritable_rangelist =
- svn_rangelist_dup((apr_array_header_t *)rangelist, pool);
-
- /* Only add this rangelist if some ranges remain. A rangelist with
- a path mapped to an empty rangelist is not syntactically valid */
- if (inheritable_rangelist->nelts)
- apr_hash_set(inheritable_mergeinfo,
- apr_pstrmemdup(pool, key, keylen), keylen,
- inheritable_rangelist);
- }
- *output = inheritable_mergeinfo;
- return SVN_NO_ERROR;
+ return svn_mergeinfo_inheritable2(output, mergeinfo, path, start, end,
+ TRUE, pool, pool);
}
@@ -1988,13 +1963,9 @@ svn_mergeinfo__filter_mergeinfo_by_range
{
apr_array_header_t *new_rangelist;
- if (include_range)
- SVN_ERR(svn_rangelist_intersect(&new_rangelist, rangelist,
- filter_rangelist, FALSE,
- result_pool));
- else
- SVN_ERR(svn_rangelist_remove(&new_rangelist, filter_rangelist,
- rangelist, FALSE, result_pool));
+ SVN_ERR(rangelist_intersect_or_remove(
+ &new_rangelist, filter_rangelist, rangelist,
+ ! include_range, FALSE, result_pool));
if (new_rangelist->nelts)
apr_hash_set(*filtered_mergeinfo,