Просмотр исходного кода

event: Fix memory leak I just introduced in 41e4cf5

rdb 4 месяцев назад
Родитель
Сommit
0a94971f1a
1 измененных файлов с 2 добавлено и 0 удалено
  1. 2 0
      panda/src/event/asyncFuture_ext.cxx

+ 2 - 0
panda/src/event/asyncFuture_ext.cxx

@@ -172,6 +172,7 @@ static PyObject *gen_next(PyObject *self) {
       // exception directly.
 #if PY_VERSION_HEX >= 0x030C0000 // 3.12
       PyObject *exc = PyObject_CallOneArg(PyExc_StopIteration, result);
+      Py_DECREF(result);
       if (LIKELY(exc != nullptr)) {
         // This function steals a reference to exc.
         PyErr_SetRaisedException(exc);
@@ -179,6 +180,7 @@ static PyObject *gen_next(PyObject *self) {
 #else
       if (PyTuple_Check(result)) {
         PyObject *exc = PyObject_CallOneArg(PyExc_StopIteration, result);
+        Py_DECREF(result);
         if (LIKELY(exc != nullptr)) {
           PyErr_SetObject(PyExc_StopIteration, exc);
           Py_DECREF(exc);