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; } } }