Python None objects are handled just like all the other objects with
respect to their reference counting. Before returning Py_None, its
reference count thus needs to be bumped.

Signed-off-by: Petr Machata <pe...@mellanox.com>
---
 tools/perf/util/python.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c
index b1e999b..762d429 100644
--- a/tools/perf/util/python.c
+++ b/tools/perf/util/python.c
@@ -967,8 +967,10 @@ static PyObject *pyrf_evlist__read_on_cpu(struct 
pyrf_evlist *pevlist,
                        return PyErr_NoMemory();
 
                evsel = perf_evlist__event2evsel(evlist, event);
-               if (!evsel)
+               if (!evsel) {
+                       Py_INCREF(Py_None);
                        return Py_None;
+               }
 
                pevent->evsel = evsel;
 
-- 
2.4.3

Reply via email to