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.