diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-09-10 19:17:42 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-09-10 19:17:42 +0200 |
commit | ee39ef0b93d31763d05e54ba99801e3f1a254c0d (patch) | |
tree | 365f8dbee248b74e8f305e78d865f3e43fb2a8fd | |
parent | 80c3fd7c559c7d329d57afe10db9bfb0adf10e46 (diff) | |
download | vim-git-ee39ef0b93d31763d05e54ba99801e3f1a254c0d.tar.gz |
patch 7.4.2361v7.4.2361
Problem: Checking for last_timer_id to overflow is not reliable. (Ozaki
Kiichi)
Solution: Check for the number not going up.
-rw-r--r-- | src/ex_cmds2.c | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index 8df67536c..b8d8dca9e 100644 --- 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; diff --git a/src/version.c b/src/version.c index a71647b90..9a6851e55 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2361, +/**/ 2360, /**/ 2359, |