diff options
author | Lisandro Dalcin <dalcinl@gmail.com> | 2017-10-29 14:49:57 +0300 |
---|---|---|
committer | Lisandro Dalcin <dalcinl@gmail.com> | 2017-10-29 14:52:32 +0300 |
commit | a85eaad1d9c47dfe0c0c7bef40c275d09fe4d72c (patch) | |
tree | 8956902d729eea7f69936f02053ed6c2812bf2b0 | |
parent | 7440949119b3eb1034f33af35686eeedbb5a4f4c (diff) | |
download | cython-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.py | 6 |
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], |