From 298699e2426e2e2687d5d655e73ccd9ecd3db2fc Mon Sep 17 00:00:00 2001 From: James Hawkins Date: Thu, 7 Jun 2007 16:37:48 -0700 Subject: [PATCH] msi: Use fetch_int to reduce code duplication and access to table data. --- dlls/msi/table.c | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/dlls/msi/table.c b/dlls/msi/table.c index 64ddcabaa22..bba93dc3107 100644 --- a/dlls/msi/table.c +++ b/dlls/msi/table.c @@ -1565,33 +1565,10 @@ static UINT TABLE_find_matching_rows( struct tagMSIVIEW *view, UINT col, for (i = 0; i < num_rows; i++, new_entry++) { - UINT row_value, n; - UINT offset; - USHORT **data; - UINT row = i; - if( row >= tv->table->row_count ) - { - row -= tv->table->row_count; - data = tv->table->nonpersistent_data; - } - else - data = tv->table->data; - n = bytes_per_column( &tv->columns[col-1] ); - switch( n ) - { - case 4: - offset = tv->columns[col-1].offset/2; - row_value = data[row][offset] + - (data[row][offset + 1] << 16); - break; - case 2: - offset = tv->columns[col-1].offset/2; - row_value = data[row][offset]; - break; - default: - ERR("oops! what is %d bytes per column?\n", n ); + UINT row_value; + + if (view->ops->fetch_int( view, i, col, &row_value ) != ERROR_SUCCESS) continue; - } new_entry->next = NULL; new_entry->value = row_value;