components/vim/vim72-patches/7.2.192
changeset 379 c6a17bba1da3
parent 378 f0b61ed1d10d
child 380 e92b3b4a1c66
--- a/components/vim/vim72-patches/7.2.192	Thu Jul 07 19:05:29 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-To: [email protected]
-Subject: Patch 7.2.192
-Fcc: outbox
-From: Bram Moolenaar <[email protected]>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.2.192 (after 7.2.188)
-Problem:    Still a crash in the garbage collector for a very rare situation.
-Solution:   Make sure current_copyID is always incremented correctly. (Kent
-	    Sibilev)
-Files:	    src/eval.c
-
-
-*** ../vim-7.2.191/src/eval.c	2009-05-26 22:58:43.000000000 +0200
---- src/eval.c	2009-05-29 21:13:47.000000000 +0200
-***************
-*** 6526,6532 ****
-  
-      /* Don't free variables in the previous_funccal list unless they are only
-       * referenced through previous_funccal.  This must be first, because if
-!      * the item is referenced elsewhere it must not be freed. */
-      for (fc = previous_funccal; fc != NULL; fc = fc->caller)
-      {
-  	set_ref_in_ht(&fc->l_vars.dv_hashtab, copyID + 1);
---- 6526,6532 ----
-  
-      /* Don't free variables in the previous_funccal list unless they are only
-       * referenced through previous_funccal.  This must be first, because if
-!      * the item is referenced elsewhere the funccal must not be freed. */
-      for (fc = previous_funccal; fc != NULL; fc = fc->caller)
-      {
-  	set_ref_in_ht(&fc->l_vars.dv_hashtab, copyID + 1);
-***************
-*** 6564,6573 ****
-      /* v: vars */
-      set_ref_in_ht(&vimvarht, copyID);
-  
-!     /* Free lists and dictionaries that are not referenced. */
-      did_free = free_unref_items(copyID);
-  
-!     /* check if any funccal can be freed now */
-      for (pfc = &previous_funccal; *pfc != NULL; )
-      {
-  	if (can_free_funccal(*pfc, copyID))
---- 6564,6577 ----
-      /* v: vars */
-      set_ref_in_ht(&vimvarht, copyID);
-  
-!     /*
-!      * 2. Free lists and dictionaries that are not referenced.
-!      */
-      did_free = free_unref_items(copyID);
-  
-!     /*
-!      * 3. Check if any funccal can be freed now.
-!      */
-      for (pfc = &previous_funccal; *pfc != NULL; )
-      {
-  	if (can_free_funccal(*pfc, copyID))
-***************
-*** 9286,9292 ****
-      if (noref < 0 || noref > 1)
-  	EMSG(_(e_invarg));
-      else
-! 	item_copy(&argvars[0], rettv, TRUE, noref == 0 ? ++current_copyID : 0);
-  }
-  
-  /*
---- 9290,9299 ----
-      if (noref < 0 || noref > 1)
-  	EMSG(_(e_invarg));
-      else
-!     {
-! 	current_copyID += COPYID_INC;
-! 	item_copy(&argvars[0], rettv, TRUE, noref == 0 ? current_copyID : 0);
-!     }
-  }
-  
-  /*
-***************
-*** 18966,18972 ****
-      char_u	*s;
-      char_u	numbuf[NUMBUFLEN];
-  
-!     s = echo_string(&v->di_tv, &tofree, numbuf, ++current_copyID);
-      list_one_var_a(prefix, v->di_key, v->di_tv.v_type,
-  					 s == NULL ? (char_u *)"" : s, first);
-      vim_free(tofree);
---- 18973,18980 ----
-      char_u	*s;
-      char_u	numbuf[NUMBUFLEN];
-  
-!     current_copyID += COPYID_INC;
-!     s = echo_string(&v->di_tv, &tofree, numbuf, current_copyID);
-      list_one_var_a(prefix, v->di_key, v->di_tv.v_type,
-  					 s == NULL ? (char_u *)"" : s, first);
-      vim_free(tofree);
-***************
-*** 19401,19407 ****
-  	    }
-  	    else if (eap->cmdidx == CMD_echo)
-  		msg_puts_attr((char_u *)" ", echo_attr);
-! 	    p = echo_string(&rettv, &tofree, numbuf, ++current_copyID);
-  	    if (p != NULL)
-  		for ( ; *p != NUL && !got_int; ++p)
-  		{
---- 19409,19416 ----
-  	    }
-  	    else if (eap->cmdidx == CMD_echo)
-  		msg_puts_attr((char_u *)" ", echo_attr);
-! 	    current_copyID += COPYID_INC;
-! 	    p = echo_string(&rettv, &tofree, numbuf, current_copyID);
-  	    if (p != NULL)
-  		for ( ; *p != NUL && !got_int; ++p)
-  		{
-*** ../vim-7.2.191/src/version.c	2009-05-26 22:58:43.000000000 +0200
---- src/version.c	2009-06-03 13:21:20.000000000 +0200
-***************
-*** 678,679 ****
---- 678,681 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     192,
-  /**/
-
--- 
-Imagine a world without hypothetical situations.
-
- /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\        download, build and distribute -- http://www.A-A-P.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///