From 275f9e7e59ea8f2c6546c30ece700c2272f4f065 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Wed, 9 Sep 2020 06:03:40 -0400 Subject: [PATCH] don't limit MemoryFileSource to just a byte[] array --- .../FileSources/MemoryFileSource.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/FileSources/MemoryFileSource.cs b/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/FileSources/MemoryFileSource.cs index 9fb40c30..8180e8a1 100644 --- a/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/FileSources/MemoryFileSource.cs +++ b/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/FileSources/MemoryFileSource.cs @@ -20,33 +20,38 @@ // along with this program. If not, see . using System; +using UniversalEditor.Accessors; namespace UniversalEditor.ObjectModels.FileSystem.FileSources { /// - /// Provides a for retrieving file data from a array. + /// Provides a for retrieving file data from a . /// public class MemoryFileSource : FileSource { - private byte[] mvarData = null; - public byte[] Data { get { return mvarData; } set { mvarData = value; } } + public MemoryAccessor Data { get; set; } = null; public MemoryFileSource(byte[] data) { - mvarData = data; + Data = new MemoryAccessor(data); + } + public MemoryFileSource(MemoryAccessor data) + { + Data = data; } public override byte[] GetDataInternal(long offset, long length) { - long realLength = Math.Min(length, mvarData.Length); + long realLength = Math.Min(length, Data.Length); + byte[] realData = Data.ToArray(); byte[] data = new byte[realLength]; - Array.Copy(mvarData, offset, data, 0, realLength); + Array.Copy(realData, offset, data, 0, realLength); return data; } public override long GetLength() { - return mvarData.Length; + return Data.Length; } } }