--On Thursday, December 5, 2002 12:13 PM -0600 cmpilato@tigris.org
wrote:
> Author: cmpilato
> Date: 2002-12-05 12:13:33 -0600 (Thu, 05 Dec 2002)
> New Revision: 4012
>
> Modified:
> trunk/subversion/libsvn_client/commit_util.c
> Log:
> * subversion/libsvn_client/commit_util.c
> (harvest_committables): Cleanup some wacky pool usage in here, and
> remove some unnecessary strdup's. Also, add a buncha comments.
That wacky pool usage was on purpose.
harvest_committables itself is executed in a loop many times (think
of the recursive case). All allocations that were done in subpool
can be freed up when we are done with this entry. Now that they are
done in pool, those allocations must wait to be freed until its
parent is cleaned up. That has nasty implications for a directory
that has a large number of children directories. Each allocation
done in pool will now have to wait until its parent is cleaned up -
that will dramatically increase the memory footprint for this case.
Though it does look like the previous code made a mistake in not
sending loop_pool to harvest_committables... -- justin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Dec 5 19:54:40 2002