msi: Don't delete the table if the table deleted itself because of a release.
This commit is contained in:
parent
b6cfc405bd
commit
39bcc662e4
|
@ -145,13 +145,18 @@ static UINT alter_add_column(MSIALTERVIEW *av)
|
||||||
static UINT ALTER_execute( struct tagMSIVIEW *view, MSIRECORD *record )
|
static UINT ALTER_execute( struct tagMSIVIEW *view, MSIRECORD *record )
|
||||||
{
|
{
|
||||||
MSIALTERVIEW *av = (MSIALTERVIEW*)view;
|
MSIALTERVIEW *av = (MSIALTERVIEW*)view;
|
||||||
|
UINT ref;
|
||||||
|
|
||||||
TRACE("%p %p\n", av, record);
|
TRACE("%p %p\n", av, record);
|
||||||
|
|
||||||
if (av->hold == 1)
|
if (av->hold == 1)
|
||||||
av->table->ops->add_ref(av->table);
|
av->table->ops->add_ref(av->table);
|
||||||
else if (av->hold == -1)
|
else if (av->hold == -1)
|
||||||
av->table->ops->release(av->table);
|
{
|
||||||
|
ref = av->table->ops->release(av->table);
|
||||||
|
if (ref == 0)
|
||||||
|
av->table = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (av->colinfo)
|
if (av->colinfo)
|
||||||
return alter_add_column(av);
|
return alter_add_column(av);
|
||||||
|
@ -202,6 +207,7 @@ static UINT ALTER_delete( struct tagMSIVIEW *view )
|
||||||
MSIALTERVIEW *av = (MSIALTERVIEW*)view;
|
MSIALTERVIEW *av = (MSIALTERVIEW*)view;
|
||||||
|
|
||||||
TRACE("%p\n", av );
|
TRACE("%p\n", av );
|
||||||
|
if (av->table)
|
||||||
av->table->ops->delete( av->table );
|
av->table->ops->delete( av->table );
|
||||||
msi_free( av );
|
msi_free( av );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue