]> granicus.if.org Git - vim/commitdiff
updated for version 7.2-192 v7.2.192
authorBram Moolenaar <Bram@vim.org>
Wed, 3 Jun 2009 11:22:45 +0000 (11:22 +0000)
committerBram Moolenaar <Bram@vim.org>
Wed, 3 Jun 2009 11:22:45 +0000 (11:22 +0000)
src/eval.c
src/version.c

index bf0c3030f765f907bb7b24f6265ae36ba5b0f498..7f82fe12cba64f6529a5e0b8185d3fde300fa9d8 100644 (file)
@@ -6526,7 +6526,7 @@ garbage_collect()
 
     /* 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. */
+     * 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,10 +6564,14 @@ garbage_collect()
     /* v: vars */
     set_ref_in_ht(&vimvarht, copyID);
 
-    /* Free lists and dictionaries that are not referenced. */
+    /*
+     * 2. Free lists and dictionaries that are not referenced.
+     */
     did_free = free_unref_items(copyID);
 
-    /* check if any funccal can be freed now */
+    /*
+     * 3. Check if any funccal can be freed now.
+     */
     for (pfc = &previous_funccal; *pfc != NULL; )
     {
        if (can_free_funccal(*pfc, copyID))
@@ -9286,7 +9290,10 @@ f_deepcopy(argvars, rettv)
     if (noref < 0 || noref > 1)
        EMSG(_(e_invarg));
     else
-       item_copy(&argvars[0], rettv, TRUE, noref == 0 ? ++current_copyID : 0);
+    {
+       current_copyID += COPYID_INC;
+       item_copy(&argvars[0], rettv, TRUE, noref == 0 ? current_copyID : 0);
+    }
 }
 
 /*
@@ -18966,7 +18973,8 @@ list_one_var(v, prefix, first)
     char_u     *s;
     char_u     numbuf[NUMBUFLEN];
 
-    s = echo_string(&v->di_tv, &tofree, numbuf, ++current_copyID);
+    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,7 +19409,8 @@ ex_echo(eap)
            }
            else if (eap->cmdidx == CMD_echo)
                msg_puts_attr((char_u *)" ", echo_attr);
-           p = echo_string(&rettv, &tofree, numbuf, ++current_copyID);
+           current_copyID += COPYID_INC;
+           p = echo_string(&rettv, &tofree, numbuf, current_copyID);
            if (p != NULL)
                for ( ; *p != NUL && !got_int; ++p)
                {
index 52e08a9c7f76fca18a9ddc2d56aa10373d7ff2a6..1bf1cb0c85247652897c986260a8d73e903c1888 100644 (file)
@@ -676,6 +676,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    192,
 /**/
     191,
 /**/