Module: wine Branch: master Commit: c90c39304f29348c5de08c5d2544433d556721da URL: http://source.winehq.org/git/wine.git/?a=commit;h=c90c39304f29348c5de08c5d25...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Oct 14 13:51:15 2011 +0200
vbscript: Make sure to remove an object from object list in collect_objects.
---
dlls/vbscript/vbdisp.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/dlls/vbscript/vbdisp.c b/dlls/vbscript/vbdisp.c index e22e060..5032f4a 100644 --- a/dlls/vbscript/vbdisp.c +++ b/dlls/vbscript/vbdisp.c @@ -495,10 +495,14 @@ void collect_objects(script_ctx_t *ctx) LIST_FOR_EACH_ENTRY_SAFE(iter, iter2, &ctx->objects, vbdisp_t, entry) run_terminator(iter);
- LIST_FOR_EACH_ENTRY_SAFE(iter, iter2, &ctx->objects, vbdisp_t, entry) { + while(!list_empty(&ctx->objects)) { + iter = LIST_ENTRY(list_head(&ctx->objects), vbdisp_t, entry); + IDispatchEx_AddRef(&iter->IDispatchEx_iface); clean_props(iter); iter->desc = NULL; + list_remove(&iter->entry); + list_init(&iter->entry); IDispatchEx_Release(&iter->IDispatchEx_iface); } }