From 5141285cb8bdd279c034dc92918fa68d40be5763 Mon Sep 17 00:00:00 2001 From: Eliot Date: Wed, 2 Nov 2022 19:11:51 +0100 Subject: [PATCH] Fix a decompilation error where a reference to a generated delegate's name was wrongly being stripped. --- src/Core/Classes/UDefaultProperty.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Core/Classes/UDefaultProperty.cs b/src/Core/Classes/UDefaultProperty.cs index 0a36093..f3bce22 100644 --- a/src/Core/Classes/UDefaultProperty.cs +++ b/src/Core/Classes/UDefaultProperty.cs @@ -611,9 +611,18 @@ private string DeserializeDefaultPropertyValue(PropertyType type, ref Deserializ string delegateName = _Buffer.ReadName(); Record(nameof(delegateName), delegateName); - // Strip __%delegateName%__Delegate - string normalizedDelegateName = ((string)Name).Substring(2, Name.Length - 12); - propertyValue = $"{normalizedDelegateName}={delegateName}"; + // Re-point the compiler-generated delegate property to the actual delegate function's name + // e.g. __%delegateName%__Delegate -> %delegateName% + if (delegateName.EndsWith("__Delegate")) + { + string normalizedDelegateName = ((string)Name).Substring(2, Name.Length - 12); + propertyValue = $"{normalizedDelegateName}={delegateName}"; + } + else + { + propertyValue += delegateName; + } + break; }