summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLisandro Dalcin <dalcinl@gmail.com>2017-10-29 14:49:57 +0300
committerLisandro Dalcin <dalcinl@gmail.com>2017-10-29 14:52:32 +0300
commita85eaad1d9c47dfe0c0c7bef40c275d09fe4d72c (patch)
tree8956902d729eea7f69936f02053ed6c2812bf2b0
parent7440949119b3eb1034f33af35686eeedbb5a4f4c (diff)
downloadcython-dalcinl/fix-try-finally.tar.gz
Minor changes to try/finally code generation [should silence Coverity Scan]dalcinl/fix-try-finally
-rw-r--r--Cython/Compiler/Nodes.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/Cython/Compiler/Nodes.py b/Cython/Compiler/Nodes.py
index eb933fc77..07588940d 100644
--- a/Cython/Compiler/Nodes.py
+++ b/Cython/Compiler/Nodes.py
@@ -7139,6 +7139,7 @@ class TryFinallyStatNode(StatNode):
code.putln('}')
if preserve_error:
+ code.put_label(new_error_label)
code.putln('/*exception exit:*/{')
if not self.in_generator:
code.putln("__Pyx_PyThreadState_declare")
@@ -7156,7 +7157,6 @@ class TryFinallyStatNode(StatNode):
exc_vars = tuple([
code.funcstate.allocate_temp(py_object_type, manage_ref=False)
for _ in range(6)])
- code.put_label(new_error_label)
self.put_error_catcher(
code, temps_to_clean_up, exc_vars, exc_lineno_cnames, exc_filename_cname)
finally_old_labels = code.all_new_labels()
@@ -7249,11 +7249,11 @@ class TryFinallyStatNode(StatNode):
code.globalstate.use_utility_code(get_exception_utility_code)
code.globalstate.use_utility_code(swap_exception_utility_code)
- code.putln(' '.join(["%s = 0;"]*len(exc_vars)) % exc_vars)
if self.is_try_finally_in_nogil:
code.put_ensure_gil(declare_gilstate=False)
code.putln("__Pyx_PyThreadState_assign")
+ code.putln(' '.join(["%s = 0;" % var for var in exc_vars]))
for temp_name, type in temps_to_clean_up:
code.put_xdecref_clear(temp_name, type)
@@ -7298,7 +7298,7 @@ class TryFinallyStatNode(StatNode):
if self.is_try_finally_in_nogil:
code.put_release_ensured_gil()
- code.putln(' '.join(["%s = 0;"]*len(exc_vars)) % exc_vars)
+ code.putln(' '.join(["%s = 0;" % var for var in exc_vars]))
if exc_lineno_cnames:
code.putln("%s = %s; %s = %s; %s = %s;" % (
Naming.lineno_cname, exc_lineno_cnames[0],