Allow generic load result

This commit is contained in:
Yoshi Askharoun
2024-12-30 11:24:26 -06:00
parent 1e43ec3257
commit 609325b62c
3 changed files with 11 additions and 6 deletions
+1 -1
View File
@@ -65,7 +65,7 @@ public class DecompileCommand : CompilerCommandBase<DecompileCommand.Settings>
if (uibLoadResult.Status != LoadResultStatus.Success)
throw new Exception($"Failed to load UIB source ({uibLoadResult.ErrorContextUri})");
var disassembler = Disassembler.Load(uibLoadResult as MarkupLoadResult);
var disassembler = Disassembler.Load(uibLoadResult);
var asm = disassembler.Write();
File.WriteAllText(GetOutputPath(settings, input), asm);
+7 -2
View File
@@ -5,7 +5,6 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Xml.Linq;
namespace Microsoft.Iris.Asm;
@@ -26,7 +25,13 @@ public class Disassembler
};
}
public static Disassembler Load(MarkupLoadResult loadResult) => new(loadResult);
public static Disassembler Load(LoadResult loadResult)
{
if (loadResult is not MarkupLoadResult markupLoadResult)
throw new ArgumentException($"Disassembly can only be performed on markup. Expected '{nameof(MarkupLoadResult)}', got '{loadResult?.GetType().Name}'.");
return new(markupLoadResult);
}
public IEnumerable<Directive> GetExports()
{
+3 -3
View File
@@ -97,7 +97,7 @@ Alt_locl:
// Disassemble the compiled UIX
var sourceLoadResult = MarkupSystem.ResolveLoadResult($"file://{uibFile.Path}", MarkupSystem.RootIslandId);
var disassembly = Disassembler.Load(sourceLoadResult as MarkupLoadResult);
var disassembly = Disassembler.Load(sourceLoadResult);
var disassemblyText = disassembly.Write();
File.WriteAllText(uixaPath, disassemblyText);
@@ -164,7 +164,7 @@ Alt_locl:
// Disassemble the compiled UIX
var sourceLoadResult = MarkupSystem.ResolveLoadResult($"file://{uixFile.Path}", MarkupSystem.RootIslandId);
var disassembly = Disassembler.Load(sourceLoadResult as MarkupLoadResult);
var disassembly = Disassembler.Load(sourceLoadResult);
var disassemblyText = disassembly.Write();
File.WriteAllText(uixaPath, disassemblyText);
@@ -217,7 +217,7 @@ Alt_locl:
string uri = "file://" + tempFile.Path;
var sourceLoadResult = MarkupSystem.ResolveLoadResult(uri, MarkupSystem.RootIslandId);
var dis = Disassembler.Load(sourceLoadResult as MarkupLoadResult);
var dis = Disassembler.Load(sourceLoadResult);
var disText = dis.Write();
_output.WriteLine(disText);