You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2012/10/18 16:48:44 UTC

svn commit: r1399683 - in /subversion/trunk/subversion/libsvn_wc: conflicts.c conflicts.h tree_conflict_editor.c

Author: stsp
Date: Thu Oct 18 14:48:44 2012
New Revision: 1399683

URL: http://svn.apache.org/viewvc?rev=1399683&view=rev
Log:
Add a result_pool parameter to svn_wc__update_moved_away_conflict_victim().

* subversion/libsvn_wc/conflicts.h
  (svn_wc__update_moved_away_conflict_victim): Add result_pool parameter to
   allocate returned work items in.

* subversion/libsvn_wc/conflicts.c
  (conflict_status_walker): svn_wc__update_moved_away_conflict_victim() now
   accepts two pools.

* subversion/libsvn_wc/tree_conflict_editor.c
  (tc_editor_baton): Add result_pool.
  (tc_editor_alter_file): Allocate new work items in the baton's result_pool.
  (svn_wc__update_moved_away_conflict_victim): Add result_pool parameter and
   pass it into the editor baton.

Modified:
    subversion/trunk/subversion/libsvn_wc/conflicts.c
    subversion/trunk/subversion/libsvn_wc/conflicts.h
    subversion/trunk/subversion/libsvn_wc/tree_conflict_editor.c

Modified: subversion/trunk/subversion/libsvn_wc/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/conflicts.c?rev=1399683&r1=1399682&r2=1399683&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_wc/conflicts.c Thu Oct 18 14:48:44 2012
@@ -2635,7 +2635,7 @@ conflict_status_walker(void *baton,
                   SVN_ERR(svn_wc__update_moved_away_conflict_victim(
                             &work_items, local_abspath, cswb->db,
                             cswb->cancel_func, cswb->cancel_baton,
-                            scratch_pool));
+                            scratch_pool, scratch_pool));
                  else if (my_choice == svn_wc_conflict_choose_theirs_conflict)
                   {
                     /* ### TODO break move */

Modified: subversion/trunk/subversion/libsvn_wc/conflicts.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/conflicts.h?rev=1399683&r1=1399682&r2=1399683&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/conflicts.h (original)
+++ subversion/trunk/subversion/libsvn_wc/conflicts.h Thu Oct 18 14:48:44 2012
@@ -396,14 +396,15 @@ svn_wc__resolve_text_conflict(svn_wc__db
 
 /* Update a moved-away tree conflict victim at VICTIM_ABSPATH with changes
  * brought in by the update operation which flagged the tree conflict.
- * Set *WORK_ITEMS to a list of work items that need to run as part
- * of marking the conflict resolved. */
+ * Set *WORK_ITEMS to a list of work items, allocated in RESULT_POOL, that
+ * need to run as part of marking the conflict resolved. */
 svn_error_t *
 svn_wc__update_moved_away_conflict_victim(svn_skel_t **work_items,
                                           const char *victim_abspath,
                                           svn_wc__db_t *db,
                                           svn_cancel_func_t cancel_func,
                                           void *cancel_baton,
+                                          apr_pool_t *result_pool,
                                           apr_pool_t *scratch_pool);
 
 #ifdef __cplusplus

Modified: subversion/trunk/subversion/libsvn_wc/tree_conflict_editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/tree_conflict_editor.c?rev=1399683&r1=1399682&r2=1399683&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/tree_conflict_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/tree_conflict_editor.c Thu Oct 18 14:48:44 2012
@@ -59,6 +59,7 @@ struct tc_editor_baton {
   svn_skel_t **work_items;
   svn_wc_conflict_version_t *old_version;
   svn_wc_conflict_version_t *new_version;
+  apr_pool_t *result_pool;
 } tc_editor_baton;
 
 static svn_error_t *
@@ -183,7 +184,7 @@ tc_editor_alter_file(void *baton,
                                      NULL, /* merge options */
                                      NULL, /* prop_diff */
                                      NULL, NULL, /* cancel_func + baton */
-                                     scratch_pool, scratch_pool));
+                                     b->result_pool, scratch_pool));
 
       if (merge_outcome == svn_wc_merge_conflict && conflict_skel)
         {
@@ -204,7 +205,7 @@ tc_editor_alter_file(void *baton,
                                                   scratch_pool,
                                                   scratch_pool));
           *b->work_items = svn_wc__wq_merge(*b->work_items, work_item,
-                                            scratch_pool);
+                                            b->result_pool);
         }
     }
 
@@ -583,6 +584,7 @@ svn_wc__update_moved_away_conflict_victi
                                           svn_wc__db_t *db,
                                           svn_cancel_func_t cancel_func,
                                           void *cancel_baton,
+                                          apr_pool_t *result_pool,
                                           apr_pool_t *scratch_pool)
 {
   svn_editor_t *tc_editor;
@@ -613,6 +615,7 @@ svn_wc__update_moved_away_conflict_victi
                       db, scratch_pool, scratch_pool));
   b->db = db;
   b->work_items = work_items;
+  b->result_pool = result_pool;
 
   /* Create the editor... */
   SVN_ERR(svn_editor_create(&tc_editor, b, cancel_func, cancel_baton,