From c7bcb8b4c124fed51d8a33dcdb9c03f6ff0403ba Mon Sep 17 00:00:00 2001 From: Stefan Behnel Date: Tue, 31 Dec 2013 11:46:10 +0100 Subject: [PATCH] call giveref() before invalidating reference in parallel exception handling code --- Cython/Compiler/Nodes.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cython/Compiler/Nodes.py b/Cython/Compiler/Nodes.py index 810542d..60ae1bb 100644 --- a/Cython/Compiler/Nodes.py +++ b/Cython/Compiler/Nodes.py @@ -7544,7 +7544,7 @@ class ParallelStatNode(StatNode, ParallelNode): pos_info = chain(*zip(self.parallel_pos_info, self.pos_info)) code.funcstate.uses_error_indicator = True code.putln("%s = %s; %s = %s; %s = %s;" % tuple(pos_info)) - code.putln('__Pyx_GOTREF(%s);' % Naming.parallel_exc_type) + code.put_gotref(Naming.parallel_exc_type) code.putln( "}") @@ -7557,10 +7557,10 @@ class ParallelStatNode(StatNode, ParallelNode): code.begin_block() code.put_ensure_gil(declare_gilstate=True) + code.put_giveref(Naming.parallel_exc_type) code.putln("__Pyx_ErrRestore(%s, %s, %s);" % self.parallel_exc) pos_info = chain(*zip(self.pos_info, self.parallel_pos_info)) code.putln("%s = %s; %s = %s; %s = %s;" % tuple(pos_info)) - code.putln("__Pyx_GIVEREF(%s);" % Naming.parallel_exc_type) code.put_release_ensured_gil() code.end_block() -- 2.7.4