Module: wine Branch: master Commit: 6836990e0b1143cad40d6f9cf54d85483e353cf5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6836990e0b1143cad40d6f9cf5...
Author: Alexandre Julliard julliard@winehq.org Date: Sat Mar 27 11:50:01 2010 +0100
setupapi: Only cleanup fake dlls once the whole section has been executed.
---
dlls/setupapi/fakedll.c | 1 + dlls/setupapi/install.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/setupapi/fakedll.c b/dlls/setupapi/fakedll.c index 3b5a47c..ade6754 100644 --- a/dlls/setupapi/fakedll.c +++ b/dlls/setupapi/fakedll.c @@ -630,5 +630,6 @@ void cleanup_fake_dlls(void) HeapFree( GetProcessHeap(), 0, file_buffer ); file_buffer = NULL; HeapFree( GetProcessHeap(), 0, handled_dlls ); + handled_dlls = NULL; handled_count = handled_total = 0; } diff --git a/dlls/setupapi/install.c b/dlls/setupapi/install.c index cb476af..354f105 100644 --- a/dlls/setupapi/install.c +++ b/dlls/setupapi/install.c @@ -713,7 +713,6 @@ static BOOL fake_dlls_callback( HINF hinf, PCWSTR field, void *arg ) HeapFree( GetProcessHeap(), 0, path ); if (!ret) break; } - cleanup_fake_dlls(); return ret; }
@@ -1095,7 +1094,9 @@ BOOL WINAPI SetupInstallFromInfSectionW( HWND owner, HINF hinf, PCWSTR section, } else info.callback = NULL;
- if (!iterate_section_fields( hinf, section, WineFakeDlls, fake_dlls_callback, NULL )) + if (iterate_section_fields( hinf, section, WineFakeDlls, fake_dlls_callback, NULL )) + cleanup_fake_dlls(); + else return FALSE;
if (!iterate_section_fields( hinf, section, RegisterDlls, register_dlls_callback, &info ))