diff --git a/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs b/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs index 2c7b53a..fd8c047 100644 --- a/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs +++ b/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs @@ -126,7 +126,9 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies "OnCancel", }; - private bool IsUnitySourceGeneratedAssemblyType(TypeDef typeDef) + private readonly Dictionary _unitySourceGeneratedComputeCache = new Dictionary(); + + private bool ComputeIsUnitySourceGeneratedAssemblyType(TypeDef typeDef) { if (typeDef.Name.StartsWith("UnitySourceGeneratedAssemblyMonoScriptTypes_")) { @@ -155,6 +157,17 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies return false; } + private bool IsUnitySourceGeneratedAssemblyType(TypeDef typeDef) + { + if (_unitySourceGeneratedComputeCache.TryGetValue(typeDef, out var result)) + { + return result; + } + result = ComputeIsUnitySourceGeneratedAssemblyType(typeDef); + _unitySourceGeneratedComputeCache.Add(typeDef, result); + return result; + } + private bool DoesDeclaringTypeDisableAllMemberRenaming(TypeDef typeDef) { if (typeDef.IsEnum && MetaUtil.HasBlackboardEnumAttribute(typeDef))