msi: Implement DROP_delete that deletes the drop view. We were leaking the view before.

This commit is contained in:
James Hawkins 2009-12-13 19:36:16 -08:00 committed by Alexandre Julliard
parent 37a058208d
commit f45db6eee7
2 changed files with 15 additions and 2 deletions

View File

@ -78,6 +78,20 @@ static UINT DROP_get_dimensions(struct tagMSIVIEW *view, UINT *rows, UINT *cols)
return ERROR_FUNCTION_FAILED; return ERROR_FUNCTION_FAILED;
} }
static UINT DROP_delete( struct tagMSIVIEW *view )
{
MSIDROPVIEW *dv = (MSIDROPVIEW*)view;
TRACE("%p\n", dv );
if( dv->table )
dv->table->ops->delete( dv->table );
msi_free( dv );
return ERROR_SUCCESS;
}
static const MSIVIEWOPS drop_ops = static const MSIVIEWOPS drop_ops =
{ {
NULL, NULL,
@ -91,7 +105,7 @@ static const MSIVIEWOPS drop_ops =
DROP_get_dimensions, DROP_get_dimensions,
NULL, NULL,
NULL, NULL,
NULL, DROP_delete,
NULL, NULL,
NULL, NULL,
NULL, NULL,

View File

@ -2326,7 +2326,6 @@ static UINT TABLE_drop(struct tagMSIVIEW *view)
list_remove(&tv->table->entry); list_remove(&tv->table->entry);
free_table(tv->table); free_table(tv->table);
TABLE_delete(view);
done: done:
msiobj_release(&rec->hdr); msiobj_release(&rec->hdr);