diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-06-28 12:05:11 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-06-28 12:05:11 +0200 |
commit | ca4b613c692b927c9345dc9e3d6be5de35266be2 (patch) | |
tree | fda5e9dfd74a771d6231b7dc5d35c9ade0b9b7bc | |
parent | dc9e955fb07f410d5d3e981ce18d895dd2847c85 (diff) | |
download | vim-git-ca4b613c692b927c9345dc9e3d6be5de35266be2.tar.gz |
patch 8.1.0121: crash when using ballooneval related to 'vartabstop'v8.1.0121
Problem: Crash when using ballooneval related to 'vartabstop'.
Solution: Initialize balloonEval->vts to NULL. (Markus Braun)
-rw-r--r-- | src/ex_cmds2.c | 2 | ||||
-rw-r--r-- | src/gui.c | 5 | ||||
-rw-r--r-- | src/gui_beval.c | 11 | ||||
-rw-r--r-- | src/gui_w32.c | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
5 files changed, 10 insertions, 19 deletions
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index 01bc357f4..5f58fedfb 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -1419,7 +1419,7 @@ check_due_timer(void) bevalexpr_due_set = FALSE; if (balloonEval == NULL) { - balloonEval = (BalloonEval *)alloc(sizeof(BalloonEval)); + balloonEval = (BalloonEval *)alloc_clear(sizeof(BalloonEval)); balloonEvalForTerm = TRUE; } if (balloonEval != NULL) @@ -745,7 +745,12 @@ gui_init(void) /* Always create the Balloon Evaluation area, but disable it when * 'ballooneval' is off. */ if (balloonEval != NULL) + { +# ifdef FEAT_VARTABS + vim_free(balloonEval->vts); +# endif vim_free(balloonEval); + } balloonEvalForTerm = FALSE; # ifdef FEAT_GUI_GTK balloonEval = gui_mch_create_beval_area(gui.drawarea, NULL, diff --git a/src/gui_beval.c b/src/gui_beval.c index 7e4625080..49694cfdd 100644 --- a/src/gui_beval.c +++ b/src/gui_beval.c @@ -111,28 +111,19 @@ gui_mch_create_beval_area( return NULL; } - beval = (BalloonEval *)alloc(sizeof(BalloonEval)); + beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval)); if (beval != NULL) { #ifdef FEAT_GUI_GTK beval->target = GTK_WIDGET(target); - beval->balloonShell = NULL; - beval->timerID = 0; #else beval->target = (Widget)target; - beval->balloonShell = NULL; - beval->timerID = (XtIntervalId)NULL; beval->appContext = XtWidgetToApplicationContext((Widget)target); #endif beval->showState = ShS_NEUTRAL; - beval->x = 0; - beval->y = 0; beval->msg = mesg; beval->msgCB = mesgCB; beval->clientData = clientData; -#ifdef FEAT_VARTABS - beval->vts = NULL; -#endif /* * Set up event handler which will keep its eyes on the pointer, diff --git a/src/gui_w32.c b/src/gui_w32.c index 855381108..147d98b39 100644 --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -8922,28 +8922,21 @@ gui_mch_create_beval_area( return NULL; } - beval = (BalloonEval *)alloc(sizeof(BalloonEval)); + beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval)); if (beval != NULL) { beval->target = s_textArea; - beval->balloon = NULL; beval->showState = ShS_NEUTRAL; - beval->x = 0; - beval->y = 0; beval->msg = mesg; beval->msgCB = mesgCB; beval->clientData = clientData; -#ifdef FEAT_VARTABS - beval->vts = NULL; -#endif InitCommonControls(); cur_beval = beval; if (p_beval) gui_mch_enable_beval_area(beval); - } return beval; } diff --git a/src/version.c b/src/version.c index aa8a1de06..5aacf2f11 100644 --- a/src/version.c +++ b/src/version.c @@ -790,6 +790,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 121, +/**/ 120, /**/ 119, |