To: vim_dev@googlegroups.com
Subject: Patch 8.1.0121
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------

Patch 8.1.0121
Problem:    Crash when using ballooneval related to 'vartabstop'.
Solution:   Initialize balloonEval->vts to NULL. (Markus Braun)
Files:	    src/ex_cmds2.c, src/gui_beval.c, src/gui_w32.c, src/gui.c


*** ../vim-8.1.0120/src/ex_cmds2.c	2018-05-12 15:36:03.000000000 +0200
--- src/ex_cmds2.c	2018-06-28 11:54:26.812645846 +0200
***************
*** 1419,1425 ****
  	    bevalexpr_due_set = FALSE;
  	    if (balloonEval == NULL)
  	    {
! 		balloonEval = (BalloonEval *)alloc(sizeof(BalloonEval));
  		balloonEvalForTerm = TRUE;
  	    }
  	    if (balloonEval != NULL)
--- 1419,1425 ----
  	    bevalexpr_due_set = FALSE;
  	    if (balloonEval == NULL)
  	    {
! 		balloonEval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
  		balloonEvalForTerm = TRUE;
  	    }
  	    if (balloonEval != NULL)
*** ../vim-8.1.0120/src/gui_beval.c	2018-06-23 19:22:45.606486311 +0200
--- src/gui_beval.c	2018-06-28 11:58:57.003085639 +0200
***************
*** 111,138 ****
  	return NULL;
      }
  
!     beval = (BalloonEval *)alloc(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,
--- 111,129 ----
  	return NULL;
      }
  
!     beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
      if (beval != NULL)
      {
  #ifdef FEAT_GUI_GTK
  	beval->target = GTK_WIDGET(target);
  #else
  	beval->target = (Widget)target;
  	beval->appContext = XtWidgetToApplicationContext((Widget)target);
  #endif
  	beval->showState = ShS_NEUTRAL;
  	beval->msg = mesg;
  	beval->msgCB = mesgCB;
  	beval->clientData = clientData;
  
  	/*
  	 * Set up event handler which will keep its eyes on the pointer,
*** ../vim-8.1.0120/src/gui_w32.c	2018-06-23 19:22:45.606486311 +0200
--- src/gui_w32.c	2018-06-28 11:59:35.478867007 +0200
***************
*** 8922,8949 ****
  	return NULL;
      }
  
!     beval = (BalloonEval *)alloc(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;
  }
--- 8922,8942 ----
  	return NULL;
      }
  
!     beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
      if (beval != NULL)
      {
  	beval->target = s_textArea;
  
  	beval->showState = ShS_NEUTRAL;
  	beval->msg = mesg;
  	beval->msgCB = mesgCB;
  	beval->clientData = clientData;
  
  	InitCommonControls();
  	cur_beval = beval;
  
  	if (p_beval)
  	    gui_mch_enable_beval_area(beval);
      }
      return beval;
  }
*** ../vim-8.1.0120/src/gui.c	2018-05-13 17:03:53.000000000 +0200
--- src/gui.c	2018-06-28 12:01:22.930259972 +0200
***************
*** 745,751 ****
--- 745,756 ----
  	/* 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,
*** ../vim-8.1.0120/src/version.c	2018-06-28 11:28:04.797455530 +0200
--- src/version.c	2018-06-28 12:02:15.657963770 +0200
***************
*** 791,792 ****
--- 791,794 ----
  {   /* Add new patch number below this line */
+ /**/
+     121,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
129. You cancel your newspaper subscription.

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///