You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/10/18 15:41:48 UTC
svn commit: r1185649 - in /subversion/trunk/subversion:
include/svn_mergeinfo.h libsvn_subr/deprecated.c libsvn_subr/mergeinfo.c
Author: hwright
Date: Tue Oct 18 13:41:48 2011
New Revision: 1185649
URL: http://svn.apache.org/viewvc?rev=1185649&view=rev
Log:
Rev svn_mergeinfo_diff() to allow it to take a scratch_pool.
* subversion/include/svn_mergeinfo.h
(svn_mergeinfo_diff2): New.
(svn_mergeinfo_diff): Deprecated.
* subversion/libsvn_subr/deprecated.c
(svn_mergeinfo_diff): New wrapper function.
* subversion/libsvn_subr/mergeinfo.c
(svn_mergeinfo_diff2): New, now with better pool management!
Modified:
subversion/trunk/subversion/include/svn_mergeinfo.h
subversion/trunk/subversion/libsvn_subr/deprecated.c
subversion/trunk/subversion/libsvn_subr/mergeinfo.c
Modified: subversion/trunk/subversion/include/svn_mergeinfo.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_mergeinfo.h?rev=1185649&r1=1185648&r2=1185649&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_mergeinfo.h (original)
+++ subversion/trunk/subversion/include/svn_mergeinfo.h Tue Oct 18 13:41:48 2011
@@ -167,7 +167,8 @@ svn_mergeinfo_parse(svn_mergeinfo_t *mer
/** Calculate the delta between two mergeinfos, @a mergefrom and @a mergeto
* (which may be @c NULL), and place the result in @a *deleted and @a
- * *added (neither output argument may be @c NULL).
+ * *added (neither output argument may be @c NULL), both allocated in @a
+ * result_pool.
*
* @a consider_inheritance determines how the rangelists in the two
* hashes are compared for equality. If @a consider_inheritance is FALSE,
@@ -184,8 +185,21 @@ svn_mergeinfo_parse(svn_mergeinfo_t *mer
* '/trunk: 1,3-4*,5' == '/trunk: 1,3-4*,5'
* '/trunk: 1,3-4,5' == '/trunk: 1,3-4,5'
*
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_mergeinfo_diff2(svn_mergeinfo_t *deleted, svn_mergeinfo_t *added,
+ svn_mergeinfo_t mergefrom, svn_mergeinfo_t mergeto,
+ svn_boolean_t consider_inheritance,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Similar to svn_mergeinfo_diff2(), but users only one pool.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
* @since New in 1.5.
*/
+SVN_DEPRECATED
svn_error_t *
svn_mergeinfo_diff(svn_mergeinfo_t *deleted, svn_mergeinfo_t *added,
svn_mergeinfo_t mergefrom, svn_mergeinfo_t mergeto,
Modified: subversion/trunk/subversion/libsvn_subr/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/deprecated.c?rev=1185649&r1=1185648&r2=1185649&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/deprecated.c (original)
+++ subversion/trunk/subversion/libsvn_subr/deprecated.c Tue Oct 18 13:41:48 2011
@@ -1083,6 +1083,17 @@ svn_rangelist_merge(apr_array_header_t *
}
svn_error_t *
+svn_mergeinfo_diff(svn_mergeinfo_t *deleted, svn_mergeinfo_t *added,
+ svn_mergeinfo_t from, svn_mergeinfo_t to,
+ svn_boolean_t consider_inheritance,
+ apr_pool_t *pool)
+{
+ return svn_error_trace(svn_mergeinfo_diff2(deleted, added, from, to,
+ consider_inheritance, pool,
+ pool));
+}
+
+svn_error_t *
svn_mergeinfo_merge(svn_mergeinfo_t mergeinfo,
svn_mergeinfo_t changes,
apr_pool_t *pool)
Modified: subversion/trunk/subversion/libsvn_subr/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/mergeinfo.c?rev=1185649&r1=1185648&r2=1185649&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/mergeinfo.c (original)
+++ subversion/trunk/subversion/libsvn_subr/mergeinfo.c Tue Oct 18 13:41:48 2011
@@ -1598,31 +1598,32 @@ walk_mergeinfo_hash_for_diff(svn_mergein
}
svn_error_t *
-svn_mergeinfo_diff(svn_mergeinfo_t *deleted, svn_mergeinfo_t *added,
- svn_mergeinfo_t from, svn_mergeinfo_t to,
- svn_boolean_t consider_inheritance,
- apr_pool_t *pool)
+svn_mergeinfo_diff2(svn_mergeinfo_t *deleted, svn_mergeinfo_t *added,
+ svn_mergeinfo_t from, svn_mergeinfo_t to,
+ svn_boolean_t consider_inheritance,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
if (from && to == NULL)
{
- *deleted = svn_mergeinfo_dup(from, pool);
- *added = apr_hash_make(pool);
+ *deleted = svn_mergeinfo_dup(from, result_pool);
+ *added = apr_hash_make(result_pool);
}
else if (from == NULL && to)
{
- *deleted = apr_hash_make(pool);
- *added = svn_mergeinfo_dup(to, pool);
+ *deleted = apr_hash_make(result_pool);
+ *added = svn_mergeinfo_dup(to, result_pool);
}
else
{
- *deleted = apr_hash_make(pool);
- *added = apr_hash_make(pool);
+ *deleted = apr_hash_make(result_pool);
+ *added = apr_hash_make(result_pool);
if (from && to)
{
SVN_ERR(walk_mergeinfo_hash_for_diff(from, to, *deleted, *added,
- consider_inheritance, pool,
- pool));
+ consider_inheritance,
+ result_pool, scratch_pool));
}
}
@@ -1639,8 +1640,8 @@ svn_mergeinfo__equals(svn_boolean_t *is_
if (apr_hash_count(info1) == apr_hash_count(info2))
{
svn_mergeinfo_t deleted, added;
- SVN_ERR(svn_mergeinfo_diff(&deleted, &added, info1, info2,
- consider_inheritance, pool));
+ SVN_ERR(svn_mergeinfo_diff2(&deleted, &added, info1, info2,
+ consider_inheritance, pool, pool));
*is_equal = apr_hash_count(deleted) == 0 && apr_hash_count(added) == 0;
}
else
Re: svn commit: r1185649 - in /subversion/trunk/subversion:
include/svn_mergeinfo.h libsvn_subr/deprecated.c libsvn_subr/mergeinfo.c
Posted by Greg Stein <gs...@gmail.com>.
On Tue, Oct 18, 2011 at 09:41, <hw...@apache.org> wrote:
>...
> +++ subversion/trunk/subversion/libsvn_subr/mergeinfo.c Tue Oct 18 13:41:48 2011
>...
> @@ -1639,8 +1640,8 @@ svn_mergeinfo__equals(svn_boolean_t *is_
> if (apr_hash_count(info1) == apr_hash_count(info2))
> {
> svn_mergeinfo_t deleted, added;
> - SVN_ERR(svn_mergeinfo_diff(&deleted, &added, info1, info2,
> - consider_inheritance, pool));
> + SVN_ERR(svn_mergeinfo_diff2(&deleted, &added, info1, info2,
> + consider_inheritance, pool, pool));
> *is_equal = apr_hash_count(deleted) == 0 && apr_hash_count(added) == 0;
> }
This change is not mentioned in the log message.
Cheers,
-g