Jacek Caban : vbscript: Make sure to remove an object from object list in collect_objects.
Alexandre Julliard
julliard at winehq.org
Fri Oct 14 14:14:48 CDT 2011
Module: wine
Branch: master
Commit: c90c39304f29348c5de08c5d2544433d556721da
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c90c39304f29348c5de08c5d2544433d556721da
Author: Jacek Caban <jacek at 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);
}
}
More information about the wine-cvs
mailing list