mirror of
https://github.com/reactos/reactos.git
synced 2025-05-28 21:48:19 +00:00
[WINESYNC] msi: Fix table ref count on create.
Signed-off-by: Piotr Caban <piotr@codeweavers.com> Signed-off-by: Hans Leidekker <hans@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org> wine commit id 405486fbe6853c78744099fa1ebe07995e07a438 by Piotr Caban <piotr@codeweavers.com>
This commit is contained in:
parent
5c718f5f5c
commit
caa225a496
3 changed files with 7 additions and 4 deletions
|
@ -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;
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
||||||
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,
|
||||||
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++;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue