From b2e23c1b2bb5499126775e22cdb1988c2393dd83 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Sun, 8 Dec 2019 03:53:18 -0500 Subject: [PATCH] provide ability to defer the data request like in FileSystemObjectModel --- .../Executable/ExecutableSection.cs | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Executable/ObjectModels/Executable/ExecutableSection.cs b/CSharp/Plugins/UniversalEditor.Plugins.Executable/ObjectModels/Executable/ExecutableSection.cs index b9a24988..8bac287d 100644 --- a/CSharp/Plugins/UniversalEditor.Plugins.Executable/ObjectModels/Executable/ExecutableSection.cs +++ b/CSharp/Plugins/UniversalEditor.Plugins.Executable/ObjectModels/Executable/ExecutableSection.cs @@ -101,8 +101,25 @@ namespace UniversalEditor.ObjectModels.Executable } } - private byte[] mvarData = new byte[0]; - public byte[] Data { get { return mvarData; } set { mvarData = value; } } + public event FileSystem.DataRequestEventHandler DataRequest; + + private byte[] mvarData = null; + public byte[] Data + { + get + { + if (mvarData == null && DataRequest != null) + { + FileSystem.DataRequestEventArgs e = new FileSystem.DataRequestEventArgs(); + DataRequest(this, e); + + mvarData = e.Data; + } + if (mvarData == null) return new byte[0]; + return mvarData; + } + set { mvarData = value; } + } private long mvarPhysicalAddress = 0; public long PhysicalAddress { get { return mvarPhysicalAddress; } set { mvarPhysicalAddress = value; } }