diff options
author | Bram Moolenaar <Bram@vim.org> | 2014-01-31 14:54:04 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2014-01-31 14:54:04 +0100 |
commit | 4315f26500934bff48ed9bda85d2c9db0c8c73f7 (patch) | |
tree | e1cfa888575dadbcae99dd8c66e9752d1d18fd4e /src/if_py_both.h | |
parent | fcc3f46735b8c47fde0961228ca1fdd20cb709a0 (diff) | |
download | vim-4315f26500934bff48ed9bda85d2c9db0c8c73f7.zip |
updated for version 7.4.161
Problem: Crash in Python exception handling.
Solution: Only use exception variables if did_throw is set. (ZyX)
Diffstat (limited to 'src/if_py_both.h')
-rw-r--r-- | src/if_py_both.h | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/src/if_py_both.h b/src/if_py_both.h index 4d81a4b92..dd7e82a71 100644 --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -564,10 +564,8 @@ VimTryEnd(void) /* Keyboard interrupt should be preferred over anything else */ if (got_int) { - if (current_exception != NULL) + if (did_throw) discard_current_exception(); - else - need_rethrow = did_throw = FALSE; got_int = FALSE; PyErr_SetNone(PyExc_KeyboardInterrupt); return -1; @@ -599,10 +597,7 @@ VimTryEnd(void) /* Python exception is preferred over vim one; unlikely to occur though */ else if (PyErr_Occurred()) { - if (current_exception != NULL) - discard_current_exception(); - else - need_rethrow = did_throw = FALSE; + discard_current_exception(); return -1; } /* Finally transform VimL exception to python one */ |