From 92886feac7a04d9ac917eec4843e079f5ab3590a Mon Sep 17 00:00:00 2001 From: Yoshi Askharoun Date: Thu, 14 Aug 2025 03:36:56 -0500 Subject: [PATCH] Bugfix --- libs/UIX.DecompXml/Decompiler.Script.cs | 10 +++++++--- libs/UIX.DecompXml/Decompiler.cs | 8 ++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/libs/UIX.DecompXml/Decompiler.Script.cs b/libs/UIX.DecompXml/Decompiler.Script.cs index 5fa966a..a24a460 100644 --- a/libs/UIX.DecompXml/Decompiler.Script.cs +++ b/libs/UIX.DecompXml/Decompiler.Script.cs @@ -83,9 +83,13 @@ partial class Decompiler if (expr is ParenthesizedExpressionSyntax parenExpr) expr = parenExpr.Expression; - var lastStatement = blockStack.Peek().Statements[^1]; - if (lastStatement.DescendantNodes().Any(n => n.IsEquivalentTo(expr))) - break; + var statements = blockStack.Peek().Statements; + if (statements.Count > 0) + { + var lastStatement = statements[^1]; + if (lastStatement.DescendantNodes().Any(n => n.IsEquivalentTo(expr))) + break; + } blockStack.Peek().Statements.Add(ExpressionStatement(expr)); } diff --git a/libs/UIX.DecompXml/Decompiler.cs b/libs/UIX.DecompXml/Decompiler.cs index d33d25a..58816e2 100644 --- a/libs/UIX.DecompXml/Decompiler.cs +++ b/libs/UIX.DecompXml/Decompiler.cs @@ -194,7 +194,7 @@ public partial class Decompiler var typeFromStringSchema = _context.GetImportedType(instruction.Operands.ElementAt(0)); var fromString = _context.GetConstant(instruction.Operands.ElementAt(1)); - var fromStringObj = IrisObject.Create(fromString, typeFromStringSchema, _context); + var fromStringObj = IrisObject.Create(fromString, typeFromStringSchema, _context, initType); stack.Push(fromStringObj); break; @@ -210,7 +210,7 @@ public partial class Decompiler var target = stack.Pop(); var xTarget = (XElement)ToXmlFriendlyObject(target); - PropertyAssignOnXElement(xTarget, propertyToInit, IrisObject.Create(newPropValue, propertyToInit.PropertyType, _context)); + PropertyAssignOnXElement(xTarget, propertyToInit, IrisObject.Create(newPropValue, propertyToInit.PropertyType, _context, initType)); stack.Push(new IrisObject(xTarget, propertyToInit.Owner)); break; @@ -225,7 +225,7 @@ public partial class Decompiler .Type; var targetInstance = (XElement)ToXmlFriendlyObject(stack.Peek()); - var dictValueObj = IrisObject.Create(dictValue, dictValueType, _context); + var dictValueObj = IrisObject.Create(dictValue, dictValueType, _context, initType); var targetDictPropertyIndex = (ushort)instruction.Operands.ElementAt(0).Value; if (targetDictPropertyIndex is ushort.MaxValue) @@ -245,7 +245,7 @@ public partial class Decompiler .Type; } - var valueToAddObj = IrisObject.Create(valueToAdd, valueToAddType, _context); + var valueToAddObj = IrisObject.Create(valueToAdd, valueToAddType, _context, initType); var targetInstance2 = (XElement)ToXmlFriendlyObject(stack.Peek());