[prev in list] [next in list] [prev in thread] [next in thread]
List: subversion-cvs
Subject: svn commit: r15511 - branches/python-bindings-improvements/subversion/bindings/swig/python/libsvn_sw
From: djames () tigris ! org
Date: 2005-07-30 22:43:06
Message-ID: 200507302243.j6UMh6b12077 () morbius ! ch ! collab ! net
[Download RAW message or body]
Author: djames
Date: Sat Jul 30 17:43:02 2005
New Revision: 15511
Modified:
branches/python-bindings-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
Log:
Fix memory leaks in swigutil_py.c.
* swig/python/libsvn_swig_py/swigutil_py.c:
(svn_swig_MustGetPtr): Turn *py_pool into a borrowed reference by
running Py_DECREF on it right away. This solves a potential memory
leak.
(make_ob_pool): Solve memory leak when proxy_set_pool fails
unexpectedly by moving Py_INCREF and cleanup registration
below the proxy_set_pool call.
Modified: branches/python-bindings-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
Url: http://svn.collab.net/viewcvs/svn/branches/python-bindings-improvements/subversio \
n/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=15511&p1=branches/python-bindi \
ngs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c&p2=branc \
hes/python-bindings-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c&r1=15510&r2=15511
==============================================================================
--- branches/python-bindings-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original)
+++ branches/python-bindings-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Sat \
Jul 30 17:43:02 2005 @@ -279,6 +279,7 @@
if (py_pool != NULL) {
if (PyObject_HasAttrString(input, parentPool)) {
*py_pool = PyObject_GetAttrString(input, parentPool);
+ Py_DECREF(*py_pool);
} else {
*py_pool = _global_svn_swig_py_pool;
}
@@ -365,14 +366,14 @@
return NULL;
}
- Py_INCREF(py_pool);
- apr_pool_cleanup_register((apr_pool_t *)pool, py_pool,
- svn_swig_py_pool_decref, apr_pool_cleanup_null);
-
if (proxy_set_pool(py_pool, NULL)) {
Py_DECREF(py_pool);
return NULL;
}
+
+ Py_INCREF(py_pool);
+ apr_pool_cleanup_register((apr_pool_t *)pool, py_pool,
+ svn_swig_py_pool_decref, apr_pool_cleanup_null);
return py_pool;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: svn-unsubscribe@subversion.tigris.org
For additional commands, e-mail: svn-help@subversion.tigris.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic