Files
UnrealEngineUWP/Engine/Source/Programs/AutomationTool/AutomationUtils/ProjectUtils.cs
Wojciech Krywult af488b1326 Automation: Fixed PropertiesCache cache with ProjectProperties that could add multiple values for the same key.
GetProjectProperties uses PropertiesCache collection (hashmap) to store project properties indexed by PropertyCacheKey struct (.uproject path + platforms + configurations). However, it didn't work as expected because PropertyCacheKey has array members that are reference types. Without a custom hashing implemented, this key would generate different hash codes even if elements stored in the arrays were the same. As a result, querying the same properties multiple times would generate multiple entries in the cache e.g.

GetProjectProperties("foo.uproject", {UnrealTargetPlatform.PC}, {UnrealTargetConfiguration.Debug})
GetProjectProperties("foo.uproject", {UnrealTargetPlatform.PC}, {UnrealTargetConfiguration.Debug})

would create two entries for PC/Debug.

Resolved by implementing the full set of Equals, GetHashCode and comparison operators.

#preflight 630e8d14556fc14dce7d11c5
#rb David.Harvey
#jira UE-162001
#rnx

[CL 21720344 by Wojciech Krywult in ue5-main branch]
2022-08-31 10:07:21 -04:00

43 KiB