msi: Don't resolve child folders if the target path doesn't change in MsiSetTargetPath.
This commit is contained in:
parent
01433f0f30
commit
f464b7d2e2
|
@ -549,17 +549,23 @@ static void set_target_path( MSIPACKAGE *package, MSIFOLDER *folder, const WCHAR
|
||||||
{
|
{
|
||||||
FolderList *fl;
|
FolderList *fl;
|
||||||
MSIFOLDER *child;
|
MSIFOLDER *child;
|
||||||
|
WCHAR *target_path;
|
||||||
|
|
||||||
msi_free( folder->ResolvedTarget );
|
if (!(target_path = strdupW( path ))) return;
|
||||||
folder->ResolvedTarget = strdupW( path );
|
msi_clean_path( target_path );
|
||||||
msi_clean_path( folder->ResolvedTarget );
|
if (strcmpW( target_path, folder->ResolvedTarget ))
|
||||||
msi_set_property( package->db, folder->Directory, folder->ResolvedTarget );
|
|
||||||
|
|
||||||
LIST_FOR_EACH_ENTRY( fl, &folder->children, FolderList, entry )
|
|
||||||
{
|
{
|
||||||
child = fl->folder;
|
msi_free( folder->ResolvedTarget );
|
||||||
msi_resolve_target_folder( package, child->Directory, FALSE );
|
folder->ResolvedTarget = target_path;
|
||||||
|
msi_set_property( package->db, folder->Directory, folder->ResolvedTarget );
|
||||||
|
|
||||||
|
LIST_FOR_EACH_ENTRY( fl, &folder->children, FolderList, entry )
|
||||||
|
{
|
||||||
|
child = fl->folder;
|
||||||
|
msi_resolve_target_folder( package, child->Directory, FALSE );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else msi_free( target_path );
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT MSI_SetTargetPathW( MSIPACKAGE *package, LPCWSTR szFolder, LPCWSTR szFolderPath )
|
UINT MSI_SetTargetPathW( MSIPACKAGE *package, LPCWSTR szFolder, LPCWSTR szFolderPath )
|
||||||
|
|
Loading…
Reference in New Issue