Authors: Mike McCormack <mike@codeweavers.com>, Aric Stewart <aric@codeweavers.com>
Refcount all objects, and use pointers internally.
diff --git a/dlls/msi/create.c b/dlls/msi/create.c
index 9259204..be4736c 100644
--- a/dlls/msi/create.c
+++ b/dlls/msi/create.c
@@ -56,7 +56,7 @@
return ERROR_FUNCTION_FAILED;
}
-static UINT CREATE_execute( struct tagMSIVIEW *view, MSIHANDLE record )
+static UINT CREATE_execute( struct tagMSIVIEW *view, MSIRECORD *record )
{
MSICREATEVIEW *cv = (MSICREATEVIEW*)view;
create_col_info *col;
@@ -214,6 +214,7 @@
}
HeapFree( GetProcessHeap(), 0, cv->name );
HeapFree( GetProcessHeap(), 0, cv );
+ msiobj_release( &cv->db->hdr );
return ERROR_SUCCESS;
}
@@ -246,6 +247,7 @@
/* fill the structure */
cv->view.ops = &create_ops;
+ msiobj_addref( &db->hdr );
cv->db = db;
cv->name = table; /* FIXME: strdupW it? */
cv->col_info = col_info;