Mercurial > vim
changeset 5629:91f3908748c2 v7.4.161
updated for version 7.4.161
Problem: Crash in Python exception handling.
Solution: Only use exception variables if did_throw is set. (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 31 Jan 2014 14:54:04 +0100 |
parents | c9cad40b4181 |
children | 4ffb2eaeef2a |
files | src/if_py_both.h src/version.c |
diffstat | 2 files changed, 4 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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 */