From 7be3ab25891fec711d8a2d9d242711a9155852b6 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 23 Jun 2019 01:46:15 +0200 Subject: 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. --- src/if_lua.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) (limited to 'src/if_lua.c') diff --git a/src/if_lua.c b/src/if_lua.c index cfb288522..4c0eb42a4 100644 --- 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 } -- cgit v1.2.1