From: Bram Moolenaar Date: Fri, 31 Jan 2014 13:54:04 +0000 (+0100) Subject: updated for version 7.4.161 X-Git-Tag: v7.4.161 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4315f26500934bff48ed9bda85d2c9db0c8c73f7;p=vim updated for version 7.4.161 Problem: Crash in Python exception handling. Solution: Only use exception variables if did_throw is set. (ZyX) --- 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 */ diff --git a/src/version.c b/src/version.c index 974c8f88f..8501c0871 100644 --- a/src/version.c +++ b/src/version.c @@ -738,6 +738,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 161, /**/ 160, /**/