Mercurial > vim
changeset 10182:40f6ce4fe30e v7.4.2361
commit https://github.com/vim/vim/commit/ee39ef0b93d31763d05e54ba99801e3f1a254c0d
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 10 19:17:42 2016 +0200
patch 7.4.2361
Problem: Checking for last_timer_id to overflow is not reliable. (Ozaki
Kiichi)
Solution: Check for the number not going up.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 10 Sep 2016 19:30:06 +0200 |
parents | 4584cd99e7ea |
children | 44eb2e61735e |
files | src/ex_cmds2.c src/version.c |
diffstat | 2 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -1143,10 +1143,11 @@ free_timer(timer_T *timer) create_timer(long msec, int repeat) { timer_T *timer = (timer_T *)alloc_clear(sizeof(timer_T)); + long prev_id = last_timer_id; if (timer == NULL) return NULL; - if (++last_timer_id < 0) + if (++last_timer_id <= prev_id) /* Overflow! Might cause duplicates... */ last_timer_id = 0; timer->tr_id = last_timer_id;