Module: wine Branch: master Commit: d21e1cc05bfbedc651b9c188f854fdb595f6ef1d URL: http://source.winehq.org/git/wine.git/?a=commit;h=d21e1cc05bfbedc651b9c188f8...
Author: James Hawkins truiken@gmail.com Date: Wed Nov 8 14:04:54 2006 -0800
msi: Move the file sequence check out of ready_media_info to avoid an unnecessary function call.
---
dlls/msi/files.c | 33 ++++++++++----------------------- 1 files changed, 10 insertions(+), 23 deletions(-)
diff --git a/dlls/msi/files.c b/dlls/msi/files.c index dd5fa63..5f7232b 100644 --- a/dlls/msi/files.c +++ b/dlls/msi/files.c @@ -473,13 +473,6 @@ static UINT ready_media_for_file( MSIPAC UINT rc = ERROR_SUCCESS; BOOL found = FALSE;
- if (file->Sequence <= mi->last_sequence) - { - set_file_source(package, file, mi->source); - TRACE("Media already ready (%u, %u)\n",file->Sequence,mi->last_sequence); - return ERROR_SUCCESS; - } - rc = load_media_info(package, file, mi); if (rc != ERROR_SUCCESS) { @@ -487,12 +480,6 @@ static UINT ready_media_for_file( MSIPAC return ERROR_FUNCTION_FAILED; }
- if (!file->IsCompressed) - { - set_file_source(package, file, mi->source); - return rc; - } - if (mi->cabinet) { TRACE("Source is CAB %s\n", debugstr_w(mi->cabinet)); @@ -522,8 +509,6 @@ static UINT ready_media_for_file( MSIPAC rc = !extract_cabinet_file(package, mi); }
- set_file_source(package, file, mi->source); - return rc; }
@@ -636,22 +621,24 @@ UINT ACTION_InstallFiles(MSIPACKAGE *pac
mi = msi_alloc_zero( sizeof(struct media_info) );
- /* Pass 2 */ LIST_FOR_EACH_ENTRY( file, &package->files, MSIFILE, entry ) { if (file->state != msifs_missing && file->state != msifs_overwrite) continue;
- TRACE("Pass 2: %s\n",debugstr_w(file->File)); - - rc = ready_media_for_file( package, mi, file ); - if (rc != ERROR_SUCCESS) + if (file->Sequence > mi->last_sequence || mi->is_continuous) { - ERR("Unable to ready media\n"); - rc = ERROR_FUNCTION_FAILED; - break; + rc = ready_media_for_file( package, mi, file ); + if (rc != ERROR_SUCCESS) + { + ERR("Failed to ready media\n"); + rc = ERROR_FUNCTION_FAILED; + break; + } }
+ set_file_source(package, file, mi->source); + TRACE("file paths %s to %s\n",debugstr_w(file->SourcePath), debugstr_w(file->TargetPath));