You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2011/07/20 19:02:48 UTC

svn commit: r1148853 - /subversion/trunk/subversion/libsvn_client/merge.c

Author: philip
Date: Wed Jul 20 17:02:47 2011
New Revision: 1148853

URL: http://svn.apache.org/viewvc?rev=1148853&view=rev
Log:
Small reduction in memory use.

* subversion/libsvn_client/merge.c:
  (log_noop_revs): Allocate rangelist once.
  (remove_noop_subtree_ranges): Destroy what is effectively an iterpool.

Modified:
    subversion/trunk/subversion/libsvn_client/merge.c

Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1148853&r1=1148852&r2=1148853&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Wed Jul 20 17:02:47 2011
@@ -7891,6 +7891,7 @@ log_noop_revs(void *baton,
   svn_boolean_t log_entry_rev_required = FALSE;
   apr_array_header_t *rl1;
   apr_array_header_t *rl2;
+  apr_array_header_t *rangelist;
 
   /* The baton's pool is essentially an iterpool so we must clear it
    * for each invocation of this function. */
@@ -7904,11 +7905,11 @@ log_noop_revs(void *baton,
 
   revision = log_entry->revision;
 
+  rangelist = svn_rangelist__initialize(revision - 1, revision, TRUE,
+                                        log_gap_baton->pool);
   /* Unconditionally add LOG_ENTRY->REVISION to BATON->OPERATIVE_MERGES. */
   SVN_ERR(svn_rangelist_merge(&(log_gap_baton->operative_ranges),
-                              svn_rangelist__initialize(revision - 1,
-                                                        revision, TRUE,
-                                                        log_gap_baton->pool),
+                              rangelist,
                               log_gap_baton->pool));
 
   /* Examine each path affected by LOG_ENTRY->REVISION.  If the explicit or
@@ -7977,10 +7978,7 @@ log_noop_revs(void *baton,
              event the inherited mergeinfo is actually non-inheritable. */
           SVN_ERR(svn_rangelist_intersect(&intersecting_range,
                                           paths_explicit_rangelist,
-                                          svn_rangelist__initialize(
-                                            revision - 1,
-                                            revision, TRUE,
-                                            pool),
+                                          rangelist,
                                           mergeinfo_inherited, pool));
 
           if (intersecting_range->nelts == 0)
@@ -7994,10 +7992,7 @@ log_noop_revs(void *baton,
 
   if (!log_entry_rev_required)
     SVN_ERR(svn_rangelist_merge(&(log_gap_baton->merged_ranges),
-                                svn_rangelist__initialize(revision - 1,
-                                                          revision,
-                                                          TRUE,
-                                                          log_gap_baton->pool),
+                                rangelist,
                                 log_gap_baton->pool));
 
   return SVN_NO_ERROR;
@@ -8166,6 +8161,8 @@ remove_noop_subtree_ranges(const char *u
         }
     }
 
+  svn_pool_destroy(log_gap_baton.pool);
+
   return SVN_NO_ERROR;
 }