Gabriel Ivăncescu : jscript: Use LIST_FOR_EACH_ENTRY_SAFE to clear Map and Set objects.

Alexandre Julliard julliard at winehq.org
Tue Jun 7 15:41:22 CDT 2022


Module: wine
Branch: master
Commit: bae77953ed9982db60486c4467199c10a7af6f4c
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=bae77953ed9982db60486c4467199c10a7af6f4c

Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date:   Mon Jun  6 17:10:11 2022 +0300

jscript: Use LIST_FOR_EACH_ENTRY_SAFE to clear Map and Set objects.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>

---

 dlls/jscript/set.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/dlls/jscript/set.c b/dlls/jscript/set.c
index d1ea6637956..0ef014b86d0 100644
--- a/dlls/jscript/set.c
+++ b/dlls/jscript/set.c
@@ -223,6 +223,7 @@ static HRESULT iterate_map(MapInstance *map, script_ctx_t *ctx, unsigned argc, j
 static HRESULT Map_clear(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
         jsval_t *r)
 {
+    struct jsval_map_entry *entry, *entry2;
     MapInstance *map;
     HRESULT hres;
 
@@ -232,10 +233,8 @@ static HRESULT Map_clear(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned
 
     TRACE("%p\n", map);
 
-    while(!list_empty(&map->entries)) {
-        struct jsval_map_entry *entry = LIST_ENTRY(list_head(&map->entries), struct jsval_map_entry, list_entry);
+    LIST_FOR_EACH_ENTRY_SAFE(entry, entry2, &map->entries, struct jsval_map_entry, list_entry)
         delete_map_entry(map, entry);
-    }
 
     if(r) *r = jsval_undefined();
     return S_OK;
@@ -443,6 +442,7 @@ static HRESULT Set_add(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned ar
 static HRESULT Set_clear(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
         jsval_t *r)
 {
+    struct jsval_map_entry *entry, *entry2;
     MapInstance *set;
     HRESULT hres;
 
@@ -452,10 +452,8 @@ static HRESULT Set_clear(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned
 
     TRACE("%p\n", set);
 
-    while(!list_empty(&set->entries)) {
-        struct jsval_map_entry *entry = LIST_ENTRY(list_head(&set->entries), struct jsval_map_entry, list_entry);
+    LIST_FOR_EACH_ENTRY_SAFE(entry, entry2, &set->entries, struct jsval_map_entry, list_entry)
         delete_map_entry(set, entry);
-    }
 
     if(r) *r = jsval_undefined();
     return S_OK;




More information about the wine-cvs mailing list