diff src/if_lua.c @ 17168:1d30eb64a7a2 v8.1.1583

patch 8.1.1583: set_ref_in_list() only sets ref in items commit https://github.com/vim/vim/commit/7be3ab25891fec711d8a2d9d242711a9155852b6 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jun 23 01:46:15 2019 +0200 patch 8.1.1583: set_ref_in_list() only sets ref in items Problem: Set_ref_in_list() only sets ref in items. Solution: Rename to set_ref_in_list_items() to avoid confusion.
author Bram Moolenaar <Bram@vim.org>
date Sun, 23 Jun 2019 02:00:06 +0200
parents 643fe07aa0e2
children 026034963159
line wrap: on
line diff
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -1980,31 +1980,19 @@ luaV_setref(lua_State *L)
 	{
 	    list_T *l = (list_T *)lua_touserdata(L, 5); // key
 
-	    if (l->lv_copyID != copyID)
-	    {
-		l->lv_copyID = copyID;
-		abort = set_ref_in_list(l, copyID, NULL);
-	    }
+	    abort = set_ref_in_list(l, copyID);
 	}
 	else if (lua_rawequal(L, -1, 3)) // dict?
 	{
 	    dict_T *d = (dict_T *)lua_touserdata(L, 5); // key
 
-	    if (d->dv_copyID != copyID)
-	    {
-		d->dv_copyID = copyID;
-		abort = set_ref_in_ht(&d->dv_hashtab, copyID, NULL);
-	    }
+	    abort = set_ref_in_dict(d, copyID);
 	}
 	else if (lua_rawequal(L, -1, 4)) // funcref?
 	{
 	    luaV_Funcref *f = (luaV_Funcref *)lua_touserdata(L, 5); // key
 
-	    if (f->self != NULL && f->self->dv_copyID != copyID)
-	    {
-		f->self->dv_copyID = copyID;
-		abort = set_ref_in_ht(&f->self->dv_hashtab, copyID, NULL);
-	    }
+	    abort = set_ref_in_dict(f->self, copyID);
 	}
 	lua_pop(L, 2); // metatable and value
     }