Seriously... problems like that would be WAY easier to find if the
function wasn't 544 lines.
Maybe you could concentrate on code clarity rather than features?
Cheers,
-g
On Wed, Apr 8, 2009 at 21:22, Paul T. Burba <pburba_at_collab.net> wrote:
> Author: pburba
> Date: Wed Apr 8 12:22:10 2009
> New Revision: 37117
>
> Log:
> Fix issue #3393 'Merge consuming too much memory'.
>
> From the dumb@$$ files: Iterpools are wonderful things, *if* you clear
> them on each iteration!
>
> * subversion/libsvn_client/merge.c
> (do_directory_merge): Clear the iterpool used when looping over each
> subtree with mergeinfo and setting the new mergeinfo describing the merge.
>
> Modified:
> trunk/subversion/libsvn_client/merge.c
>
> Modified: trunk/subversion/libsvn_client/merge.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_client/merge.c?pathrev=37117&r1=37116&r2=37117
> ==============================================================================
> --- trunk/subversion/libsvn_client/merge.c Wed Apr 8 10:37:25 2009 (r37116)
> +++ trunk/subversion/libsvn_client/merge.c Wed Apr 8 12:22:10 2009 (r37117)
> @@ -6337,6 +6337,8 @@ do_directory_merge(const char *url1,
> if (child->absent)
> continue;
>
> + svn_pool_clear(iterpool);
> +
> if (strlen(child->path) == merge_target_len)
> child_repos_path = "";
> else
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=495&dsMessageId=1601039
>
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1601498
Received on 2009-04-08 22:09:19 CEST