18 Jul
2023
18 Jul
'23
9:11 a.m.
Jacek Caban (@jacek) commented about dlls/jscript/dispex.c:
TRACE("(%p)\n", obj);
+ if(obj->has_weak_refs) { + struct list *iter, *next, *list = &RB_ENTRY_VALUE(rb_get(&obj->ctx->weak_refs, obj), struct weak_refs_entry, entry)->list; + iter = list_head(list); + do { + next = list_next(list, iter); + remove_weakmap_entry(LIST_ENTRY(iter, struct weakmap_entry, weak_refs_entry)); + } while((iter = next)); + }
This is also not safe, something like `while (!list_empty( list )) { ... }` would take care of it. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3300#note_39263