From 94b9b7ee2f1d6d3be9528ae50820f924c3a6dbf8 Mon Sep 17 00:00:00 2001 From: walon Date: Tue, 27 May 2025 22:21:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=93=E5=AD=98=20UnityRenamePolicy::IsUnity?= =?UTF-8?q?SourceGeneratedAssemblyType=E7=9A=84=E8=AE=A1=E7=AE=97=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=EF=BC=8C=E4=BC=98=E5=8C=96=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SymbolObfus/Policies/UnityRenamePolicy.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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))