mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.1.0121: crash when using ballooneval related to 'vartabstop'
Problem: Crash when using ballooneval related to 'vartabstop'. Solution: Initialize balloonEval->vts to NULL. (Markus Braun)
This commit is contained in:
@@ -1419,7 +1419,7 @@ check_due_timer(void)
|
|||||||
bevalexpr_due_set = FALSE;
|
bevalexpr_due_set = FALSE;
|
||||||
if (balloonEval == NULL)
|
if (balloonEval == NULL)
|
||||||
{
|
{
|
||||||
balloonEval = (BalloonEval *)alloc(sizeof(BalloonEval));
|
balloonEval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
|
||||||
balloonEvalForTerm = TRUE;
|
balloonEvalForTerm = TRUE;
|
||||||
}
|
}
|
||||||
if (balloonEval != NULL)
|
if (balloonEval != NULL)
|
||||||
|
@@ -745,7 +745,12 @@ gui_init(void)
|
|||||||
/* Always create the Balloon Evaluation area, but disable it when
|
/* Always create the Balloon Evaluation area, but disable it when
|
||||||
* 'ballooneval' is off. */
|
* 'ballooneval' is off. */
|
||||||
if (balloonEval != NULL)
|
if (balloonEval != NULL)
|
||||||
|
{
|
||||||
|
# ifdef FEAT_VARTABS
|
||||||
|
vim_free(balloonEval->vts);
|
||||||
|
# endif
|
||||||
vim_free(balloonEval);
|
vim_free(balloonEval);
|
||||||
|
}
|
||||||
balloonEvalForTerm = FALSE;
|
balloonEvalForTerm = FALSE;
|
||||||
# ifdef FEAT_GUI_GTK
|
# ifdef FEAT_GUI_GTK
|
||||||
balloonEval = gui_mch_create_beval_area(gui.drawarea, NULL,
|
balloonEval = gui_mch_create_beval_area(gui.drawarea, NULL,
|
||||||
|
@@ -111,28 +111,19 @@ gui_mch_create_beval_area(
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
beval = (BalloonEval *)alloc(sizeof(BalloonEval));
|
beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
|
||||||
if (beval != NULL)
|
if (beval != NULL)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_GUI_GTK
|
#ifdef FEAT_GUI_GTK
|
||||||
beval->target = GTK_WIDGET(target);
|
beval->target = GTK_WIDGET(target);
|
||||||
beval->balloonShell = NULL;
|
|
||||||
beval->timerID = 0;
|
|
||||||
#else
|
#else
|
||||||
beval->target = (Widget)target;
|
beval->target = (Widget)target;
|
||||||
beval->balloonShell = NULL;
|
|
||||||
beval->timerID = (XtIntervalId)NULL;
|
|
||||||
beval->appContext = XtWidgetToApplicationContext((Widget)target);
|
beval->appContext = XtWidgetToApplicationContext((Widget)target);
|
||||||
#endif
|
#endif
|
||||||
beval->showState = ShS_NEUTRAL;
|
beval->showState = ShS_NEUTRAL;
|
||||||
beval->x = 0;
|
|
||||||
beval->y = 0;
|
|
||||||
beval->msg = mesg;
|
beval->msg = mesg;
|
||||||
beval->msgCB = mesgCB;
|
beval->msgCB = mesgCB;
|
||||||
beval->clientData = clientData;
|
beval->clientData = clientData;
|
||||||
#ifdef FEAT_VARTABS
|
|
||||||
beval->vts = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set up event handler which will keep its eyes on the pointer,
|
* Set up event handler which will keep its eyes on the pointer,
|
||||||
|
@@ -8922,28 +8922,21 @@ gui_mch_create_beval_area(
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
beval = (BalloonEval *)alloc(sizeof(BalloonEval));
|
beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
|
||||||
if (beval != NULL)
|
if (beval != NULL)
|
||||||
{
|
{
|
||||||
beval->target = s_textArea;
|
beval->target = s_textArea;
|
||||||
beval->balloon = NULL;
|
|
||||||
|
|
||||||
beval->showState = ShS_NEUTRAL;
|
beval->showState = ShS_NEUTRAL;
|
||||||
beval->x = 0;
|
|
||||||
beval->y = 0;
|
|
||||||
beval->msg = mesg;
|
beval->msg = mesg;
|
||||||
beval->msgCB = mesgCB;
|
beval->msgCB = mesgCB;
|
||||||
beval->clientData = clientData;
|
beval->clientData = clientData;
|
||||||
#ifdef FEAT_VARTABS
|
|
||||||
beval->vts = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
InitCommonControls();
|
InitCommonControls();
|
||||||
cur_beval = beval;
|
cur_beval = beval;
|
||||||
|
|
||||||
if (p_beval)
|
if (p_beval)
|
||||||
gui_mch_enable_beval_area(beval);
|
gui_mch_enable_beval_area(beval);
|
||||||
|
|
||||||
}
|
}
|
||||||
return beval;
|
return beval;
|
||||||
}
|
}
|
||||||
|
@@ -789,6 +789,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
121,
|
||||||
/**/
|
/**/
|
||||||
120,
|
120,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user