James Hawkins : msi: Free each table object when deleting the join view.
Alexandre Julliard
julliard at winehq.org
Mon Dec 14 09:51:22 CST 2009
Module: wine
Branch: master
Commit: 7abb42a99499b8a9dd11b30f42fe7f945e20c4eb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7abb42a99499b8a9dd11b30f42fe7f945e20c4eb
Author: James Hawkins <truiken at gmail.com>
Date: Sun Dec 13 19:36:31 2009 -0800
msi: Free each table object when deleting the join view.
---
dlls/msi/join.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/join.c b/dlls/msi/join.c
index 1aeb17c..ef5cede 100644
--- a/dlls/msi/join.c
+++ b/dlls/msi/join.c
@@ -229,14 +229,18 @@ static UINT JOIN_modify( struct tagMSIVIEW *view, MSIMODIFY eModifyMode,
static UINT JOIN_delete( struct tagMSIVIEW *view )
{
MSIJOINVIEW *jv = (MSIJOINVIEW*)view;
- JOINTABLE *table;
+ struct list *item, *cursor;
TRACE("%p\n", jv );
- LIST_FOR_EACH_ENTRY(table, &jv->tables, JOINTABLE, entry)
+ LIST_FOR_EACH_SAFE(item, cursor, &jv->tables)
{
+ JOINTABLE* table = LIST_ENTRY(item, JOINTABLE, entry);
+
+ list_remove(&table->entry);
table->view->ops->delete(table->view);
table->view = NULL;
+ msi_free(table);
}
msi_free(jv);
More information about the wine-cvs
mailing list