Module: wine Branch: master Commit: d38ace6d4cf31d409f64e2ce930fbfe1f4c9a2a8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d38ace6d4cf31d409f64e2ce93...
Author: Hans Leidekker hans@codeweavers.com Date: Wed Jul 27 10:52:48 2011 +0200
msi: Store table and column names in the string table.
---
dlls/msi/table.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/table.c b/dlls/msi/table.c index aec257f..5bc1e3d 100644 --- a/dlls/msi/table.c +++ b/dlls/msi/table.c @@ -728,6 +728,7 @@ static UINT get_tablecolumns( MSIDATABASE *db, LPCWSTR szTableName, MSICOLUMNINF UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info, MSICONDITION persistent, MSITABLE **table_ret) { + enum StringPersistence string_persistence = (persistent) ? StringPersistent : StringNonPersistent; UINT r, nField; MSIVIEW *tv = NULL; MSIRECORD *rec = NULL; @@ -767,9 +768,12 @@ UINT msi_create_table( MSIDATABASE *db, LPCWSTR name, column_info *col_info,
for( i = 0, col = col_info; col; i++, col = col->next ) { - table->colinfo[ i ].tablename = strdupW( col->table ); + UINT table_id = msi_addstringW( db->strings, col->table, -1, 1, string_persistence ); + UINT col_id = msi_addstringW( db->strings, col->column, -1, 1, string_persistence ); + + table->colinfo[ i ].tablename = msi_string_lookup_id( db->strings, table_id ); table->colinfo[ i ].number = i + 1; - table->colinfo[ i ].colname = strdupW( col->column ); + table->colinfo[ i ].colname = msi_string_lookup_id( db->strings, col_id ); table->colinfo[ i ].type = col->type; table->colinfo[ i ].offset = 0; table->colinfo[ i ].ref_count = 0;