diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/depcache.cc | 1 | ||||
| -rw-r--r-- | python/generic.h | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/python/depcache.cc b/python/depcache.cc index a84eb615..cfa4f5d6 100644 --- a/python/depcache.cc +++ b/python/depcache.cc @@ -1000,7 +1000,6 @@ static PyObject *PkgActionGroupExit(PyObject *Self,PyObject *Args) { pkgDepCache::ActionGroup *ag = GetCpp<pkgDepCache::ActionGroup*>(Self); if (ag != NULL) ag->release(); - Py_DECREF(Self); Py_RETURN_FALSE; } diff --git a/python/generic.h b/python/generic.h index 7abf7e7a..ce9e5091 100644 --- a/python/generic.h +++ b/python/generic.h @@ -79,7 +79,9 @@ typedef int Py_ssize_t; static inline const char *PyUnicode_AsString(PyObject *op) { // Convert to bytes object, using the default encoding. - PyObject *bytes = PyUnicode_AsEncodedString(op,0,0); + // Use Python-internal API, there is no other way to do this + // without a memory leak. + PyObject *bytes = _PyUnicode_AsDefaultEncodedString(op, 0); return bytes ? PyBytes_AS_STRING(bytes) : 0; } |
