--- subversion-1.7.7/subversion/include/svn_pools.h +++ subversion-1.7.7/subversion/include/svn_pools.h @@ -72,6 +72,9 @@ svn_pool_create_ex_debug(pool, allocator /** Create a pool as a subpool of @a parent_pool */ #define svn_pool_create(parent_pool) svn_pool_create_ex(parent_pool, NULL) +apr_pool_t * +svn_pool_create_unmanaged(void); + /** Clear a @a pool destroying its children. * * This define for @c svn_pool_clear exists for completeness. --- subversion-1.7.7/subversion/libsvn_subr/dso.c +++ subversion-1.7.7/subversion/libsvn_subr/dso.c @@ -31,7 +31,7 @@ static apr_thread_mutex_t *dso_mutex; #endif -/* Global pool to allocate DSOs in. */ +/* Global unmanaged pool to allocate DSOs in. */ static apr_pool_t *dso_pool; /* Global cache for storing DSO objects. */ @@ -55,7 +55,7 @@ svn_dso_initialize2(void) if (dso_pool) return SVN_NO_ERROR; - dso_pool = svn_pool_create(NULL); + dso_pool = svn_pool_create_unmanaged(); #if APR_HAS_THREADS status = apr_thread_mutex_create(&dso_mutex, --- subversion-1.7.7/subversion/libsvn_subr/pool.c +++ subversion-1.7.7/subversion/libsvn_subr/pool.c @@ -96,4 +96,12 @@ svn_pool_create_ex(apr_pool_t *pool, apr return svn_pool_create_ex_debug(pool, allocator, SVN_FILE_LINE_UNDEFINED); } +apr_pool_t * +svn_pool_create_unmanaged() +{ + apr_pool_t *pool; + apr_pool_create_unmanaged_ex(&pool, abort_on_pool_failure, NULL); + return pool; +} + #endif /* APR_POOL_DEBUG */