You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2009/12/23 14:46:42 UTC

svn commit: r893509 - /subversion/trunk/subversion/libsvn_fs_base/dag.c

Author: julianfoad
Date: Wed Dec 23 13:46:41 2009
New Revision: 893509

URL: http://svn.apache.org/viewvc?rev=893509&view=rev
Log:
For obliterate, add an iterpool to a loop introduced in r893267.

* subversion/libsvn_fs_base/dag.c
  (node_origins_update): Add and use an iterpool for the loop.

Modified:
    subversion/trunk/subversion/libsvn_fs_base/dag.c

Modified: subversion/trunk/subversion/libsvn_fs_base/dag.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/dag.c?rev=893509&r1=893508&r2=893509&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_base/dag.c (original)
+++ subversion/trunk/subversion/libsvn_fs_base/dag.c Wed Dec 23 13:46:41 2009
@@ -1638,6 +1638,7 @@
                     apr_pool_t *scratch_pool)
 {
   apr_array_header_t *changes;
+  apr_pool_t *iterpool = svn_pool_create(scratch_pool);
   int i;
 
   /* To find the nodes that originate in the old txn, we'll look in the
@@ -1649,6 +1650,8 @@
     {
       change_t *change = APR_ARRAY_IDX(changes, i, change_t *);
 
+      svn_pool_clear(iterpool);
+
       if (change->kind == svn_fs_path_change_add
           || change->kind == svn_fs_path_change_replace)
         {
@@ -1660,7 +1663,7 @@
 
           /* Fetch the old node-origin */
           SVN_ERR(svn_fs_bdb__get_node_origin(&origin_id, trail->fs, node_id,
-                                              trail, scratch_pool));
+                                              trail, iterpool));
           id_copy_id = svn_fs_base__id_copy_id(origin_id);
           id_txn_id = svn_fs_base__id_txn_id(origin_id);
 
@@ -1668,16 +1671,18 @@
             {
               /* Change its txn_id to NEW_TXN_ID */
               origin_id = svn_fs_base__id_create(node_id, id_copy_id,
-                                                 new_txn_id, scratch_pool);
+                                                 new_txn_id, iterpool);
               /* Save the new node-origin */
-              SVN_ERR(svn_fs_bdb__delete_node_origin(trail->fs, node_id, trail, scratch_pool));
+              SVN_ERR(svn_fs_bdb__delete_node_origin(trail->fs, node_id, trail,
+                                                     iterpool));
               SVN_ERR(svn_fs_bdb__set_node_origin(trail->fs, node_id,
                                                   origin_id, trail,
-                                                  scratch_pool));
+                                                  iterpool));
             }
         }
     }
 
+  svn_pool_destroy(iterpool);
   return SVN_NO_ERROR;
 }