Index: subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c =================================================================== --- subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (revision 16409) +++ subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (working copy) @@ -101,7 +101,6 @@ /* The application pool */ static apr_pool_t *_global_pool = NULL; static PyObject *_global_svn_swig_py_pool = NULL; -int _global_svn_swig_py_is_local_pool = 0; static char assertValid[] = "assert_valid"; static char parentPool[] = "_parent_pool"; static char isValid[] = "_is_valid"; Index: subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h =================================================================== --- subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h (revision 16409) +++ subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h (working copy) @@ -60,8 +60,6 @@ /*** Automatic Pool Management Functions ***/ -SVN_SWIG_SWIGUTIL_EXPORT -extern int _global_svn_swig_py_is_local_pool; /* Set the application pool */ SVN_SWIG_SWIGUTIL_EXPORT Index: subversion/bindings/swig/include/svn_global.swg =================================================================== --- subversion/bindings/swig/include/svn_global.swg (revision 16409) +++ subversion/bindings/swig/include/svn_global.swg (working copy) @@ -47,8 +47,10 @@ /* Pointers, references, and arrays */ %typemap (arginit) POOLINIT ( \ - PyObject *_global_svn_swig_py_pool, apr_pool_t *_global_pool) + PyObject *_global_svn_swig_py_pool, apr_pool_t *_global_pool, + int _global_pool_is_application_pool) { + _global_pool_is_application_pool = 1; svn_swig_get_application_pool(&_global_svn_swig_py_pool, &_global_pool); } %apply POOLINIT { void *, SWIGTYPE *, SWIGTYPE [] }; @@ -57,7 +59,7 @@ %typemap (in) void *, SWIGTYPE *, SWIGTYPE [] { $1 = ($1_ltype)svn_swig_MustGetPtr($input, $descriptor, $svn_argnum, - _global_svn_swig_py_is_local_pool ? NULL : &_global_svn_swig_py_pool); + _global_pool_is_application_pool ? &_global_svn_swig_py_pool : NULL); if (PyErr_Occurred()) { SWIG_fail; } Index: subversion/bindings/swig/include/svn_types.swg =================================================================== --- subversion/bindings/swig/include/svn_types.swg (revision 16409) +++ subversion/bindings/swig/include/svn_types.swg (working copy) @@ -278,12 +278,11 @@ #endif %typemap(python, default) apr_pool_t *(apr_pool_t *_global_pool, - PyObject *_global_svn_swig_py_pool, int _global_svn_swig_py_is_local_pool, - int _global_is_default_pool) + PyObject *_global_svn_swig_py_pool, int _global_pool_is_default_pool) { int argnum = PyTuple_GET_SIZE(args) - 1; - _global_svn_swig_py_is_local_pool = 1; - _global_is_default_pool = 1; + _global_pool_is_application_pool = 0; + _global_pool_is_default_pool = 1; if (argnum >= 0) { PyObject *input = PyTuple_GET_ITEM(args, argnum); if (input != Py_None && @@ -295,7 +294,7 @@ } _global_svn_swig_py_pool = input; Py_XINCREF(_global_svn_swig_py_pool); - _global_is_default_pool = 0; + _global_pool_is_default_pool = 0; } else { if (PyErr_Occurred()) { PyErr_Clear(); @@ -312,7 +311,7 @@ } %typemap(python, in) apr_pool_t * { - if ($input != Py_None && _global_is_default_pool == 1) { + if ($input != Py_None && _global_pool_is_default_pool == 1) { svn_swig_py_pool_check($input) _global_pool = svn_swig_MustGetPtr($input, $1_descriptor, $svn_argnum, NULL);