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 2014/12/25 17:52:16 UTC
svn commit: r1647905 - /subversion/trunk/subversion/libsvn_fs_fs/tree.c
Author: stefan2
Date: Thu Dec 25 16:52:16 2014
New Revision: 1647905
URL: http://svn.apache.org/r1647905
Log:
Fix a pool usage issue with FSFS svn_fs_history_prev. This may fix
a memory usage issue caused by cached DAG nodes not being released
in a timely manner.
* subversion/libsvn_fs_fs/tree.c
(fs_history_prev): Iterations shall use iterpools for scratch.
Modified:
subversion/trunk/subversion/libsvn_fs_fs/tree.c
Modified: subversion/trunk/subversion/libsvn_fs_fs/tree.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/tree.c?rev=1647905&r1=1647904&r2=1647905&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/tree.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/tree.c Thu Dec 25 16:52:16 2014
@@ -3877,12 +3877,14 @@ fs_history_prev(svn_fs_history_t **prev_
}
else
{
+ apr_pool_t *iterpool = svn_pool_create(scratch_pool);
prev_history = history;
while (1)
{
+ svn_pool_clear(iterpool);
SVN_ERR(history_prev(&prev_history, prev_history, cross_copies,
- result_pool, scratch_pool));
+ result_pool, iterpool));
if (! prev_history)
break;
@@ -3890,6 +3892,8 @@ fs_history_prev(svn_fs_history_t **prev_
if (fhd->is_interesting)
break;
}
+
+ svn_pool_destroy(iterpool);
}
*prev_history_p = prev_history;