comparison src/ex_cmds2.c @ 11645:50f2a4ad1cfa v8.0.0705

patch 8.0.0705: crash when there is an error in a timer callback commit https://github.com/vim/vim/commit/cae24be4a808d60313913cc6feea6c2bee2e2a42 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jul 10 22:12:10 2017 +0200 patch 8.0.0705: crash when there is an error in a timer callback Problem: Crash when there is an error in a timer callback. (Aron Griffis, Ozaki Kiichi) Solution: Check did_throw before discarding an exception. NULLify current_exception when no longer valid.
author Christian Brabandt <cb@256bit.org>
date Mon, 10 Jul 2017 22:15:03 +0200
parents 71d7b5ed08a0
children f87c43fca41d
comparison
equal deleted inserted replaced
11644:da9c50ac8391 11645:50f2a4ad1cfa
1233 timer_busy = save_timer_busy; 1233 timer_busy = save_timer_busy;
1234 vgetc_busy = save_vgetc_busy; 1234 vgetc_busy = save_vgetc_busy;
1235 if (called_emsg) 1235 if (called_emsg)
1236 { 1236 {
1237 ++timer->tr_emsg_count; 1237 ++timer->tr_emsg_count;
1238 if (!did_throw_save && current_exception != NULL) 1238 if (!did_throw_save && did_throw && current_exception != NULL)
1239 discard_current_exception(); 1239 discard_current_exception();
1240 } 1240 }
1241 did_emsg = did_emsg_save; 1241 did_emsg = did_emsg_save;
1242 called_emsg = called_emsg_save; 1242 called_emsg = called_emsg_save;
1243 1243