Mercurial > vim
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 |