0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

updated for version 7.4.161

Problem:    Crash in Python exception handling.
Solution:   Only use exception variables if did_throw is set. (ZyX)
This commit is contained in:
Bram Moolenaar
2014-01-31 14:54:04 +01:00
parent fcc3f46735
commit 4315f26500
2 changed files with 4 additions and 7 deletions

View File

@@ -564,10 +564,8 @@ VimTryEnd(void)
/* Keyboard interrupt should be preferred over anything else */ /* Keyboard interrupt should be preferred over anything else */
if (got_int) if (got_int)
{ {
if (current_exception != NULL) if (did_throw)
discard_current_exception(); discard_current_exception();
else
need_rethrow = did_throw = FALSE;
got_int = FALSE; got_int = FALSE;
PyErr_SetNone(PyExc_KeyboardInterrupt); PyErr_SetNone(PyExc_KeyboardInterrupt);
return -1; return -1;
@@ -599,10 +597,7 @@ VimTryEnd(void)
/* Python exception is preferred over vim one; unlikely to occur though */ /* Python exception is preferred over vim one; unlikely to occur though */
else if (PyErr_Occurred()) else if (PyErr_Occurred())
{ {
if (current_exception != NULL)
discard_current_exception(); discard_current_exception();
else
need_rethrow = did_throw = FALSE;
return -1; return -1;
} }
/* Finally transform VimL exception to python one */ /* Finally transform VimL exception to python one */

View File

@@ -738,6 +738,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
161,
/**/ /**/
160, 160,
/**/ /**/