Commit 405486fb authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

msi: Fix table ref count on create.

parent 5d568279
...@@ -68,7 +68,7 @@ static UINT CREATE_execute( struct tagMSIVIEW *view, MSIRECORD *record ) ...@@ -68,7 +68,7 @@ static UINT CREATE_execute( struct tagMSIVIEW *view, MSIRECORD *record )
if (cv->bIsTemp && !cv->hold) if (cv->bIsTemp && !cv->hold)
return ERROR_SUCCESS; return ERROR_SUCCESS;
return msi_create_table( cv->db, cv->name, cv->col_info, persist ); return msi_create_table( cv->db, cv->name, cv->col_info, persist, cv->hold );
} }
static UINT CREATE_close( struct tagMSIVIEW *view ) static UINT CREATE_close( struct tagMSIVIEW *view )
......
...@@ -149,7 +149,7 @@ int sqliteGetToken(const WCHAR *z, int *tokenType, int *skip) DECLSPEC_HIDDEN; ...@@ -149,7 +149,7 @@ int sqliteGetToken(const WCHAR *z, int *tokenType, int *skip) DECLSPEC_HIDDEN;
MSIRECORD *msi_query_merge_record( UINT fields, const column_info *vl, MSIRECORD *rec ) DECLSPEC_HIDDEN; MSIRECORD *msi_query_merge_record( UINT fields, const column_info *vl, MSIRECORD *rec ) DECLSPEC_HIDDEN;
UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info, UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info,
MSICONDITION persistent ) DECLSPEC_HIDDEN; MSICONDITION persistent, BOOL hold ) DECLSPEC_HIDDEN;
UINT msi_select_update( MSIVIEW *view, MSIRECORD *rec, UINT row ) DECLSPEC_HIDDEN; UINT msi_select_update( MSIVIEW *view, MSIRECORD *rec, UINT row ) DECLSPEC_HIDDEN;
......
...@@ -713,7 +713,7 @@ static UINT get_tablecolumns( MSIDATABASE *db, LPCWSTR szTableName, MSICOLUMNINF ...@@ -713,7 +713,7 @@ static UINT get_tablecolumns( MSIDATABASE *db, LPCWSTR szTableName, MSICOLUMNINF
} }
UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info, UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info,
MSICONDITION persistent ) MSICONDITION persistent, BOOL hold )
{ {
UINT r, nField; UINT r, nField;
MSIVIEW *tv = NULL; MSIVIEW *tv = NULL;
...@@ -733,7 +733,7 @@ UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info, ...@@ -733,7 +733,7 @@ UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info,
if( !table ) if( !table )
return ERROR_FUNCTION_FAILED; return ERROR_FUNCTION_FAILED;
table->ref_count = 1; table->ref_count = 0;
table->row_count = 0; table->row_count = 0;
table->data = NULL; table->data = NULL;
table->data_persistent = NULL; table->data_persistent = NULL;
...@@ -742,6 +742,9 @@ UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info, ...@@ -742,6 +742,9 @@ UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info,
table->persistent = persistent; table->persistent = persistent;
lstrcpyW( table->name, name ); lstrcpyW( table->name, name );
if( hold )
table->ref_count++;
for( col = col_info; col; col = col->next ) for( col = col_info; col; col = col->next )
table->col_count++; table->col_count++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment