Use MemoryStream in wrappers

This commit is contained in:
Matt Nadareski
2022-12-15 12:41:08 -08:00
parent 715b9eb156
commit bbe234b459
6 changed files with 18 additions and 72 deletions

View File

@@ -55,18 +55,9 @@ namespace BurnOutSharp.Wrappers
/// <returns>A BFPK archive wrapper on success, null on failure</returns>
public static BFPK Create(byte[] data, int offset)
{
var archive = Builder.BFPK.ParseArchive(data, offset);
if (archive == null)
return null;
var wrapper = new BFPK
{
_archive = archive,
_dataSource = DataSource.ByteArray,
_byteArrayData = data,
_byteArrayOffset = offset,
};
return wrapper;
MemoryStream dataStream = new MemoryStream(data);
dataStream.Position = offset;
return Create(dataStream);
}
/// <summary>

View File

@@ -301,18 +301,9 @@ namespace BurnOutSharp.Wrappers
/// <returns>An LE/LX executable wrapper on success, null on failure</returns>
public static LinearExecutable Create(byte[] data, int offset)
{
var executable = Builder.LinearExecutable.ParseExecutable(data, offset);
if (executable == null)
return null;
var wrapper = new LinearExecutable
{
_executable = executable,
_dataSource = DataSource.ByteArray,
_byteArrayData = data,
_byteArrayOffset = offset,
};
return wrapper;
MemoryStream dataStream = new MemoryStream(data);
dataStream.Position = offset;
return Create(dataStream);
}
/// <summary>

View File

@@ -105,18 +105,9 @@ namespace BurnOutSharp.Wrappers
/// <returns>An MS-DOS executable wrapper on success, null on failure</returns>
public static MSDOS Create(byte[] data, int offset)
{
var executable = Builder.MSDOS.ParseExecutable(data, offset);
if (executable == null)
return null;
var wrapper = new MSDOS
{
_executable = executable,
_dataSource = DataSource.ByteArray,
_byteArrayData = data,
_byteArrayOffset = offset,
};
return wrapper;
MemoryStream dataStream = new MemoryStream(data);
dataStream.Position = offset;
return Create(dataStream);
}
/// <summary>

View File

@@ -116,18 +116,9 @@ namespace BurnOutSharp.Wrappers
/// <returns>A cabinet wrapper on success, null on failure</returns>
public static MicrosoftCabinet Create(byte[] data, int offset)
{
var cabinet = Builder.MicrosoftCabinet.ParseCabinet(data, offset);
if (cabinet == null)
return null;
var wrapper = new MicrosoftCabinet
{
_cabinet = cabinet,
_dataSource = DataSource.ByteArray,
_byteArrayData = data,
_byteArrayOffset = offset,
};
return wrapper;
MemoryStream dataStream = new MemoryStream(data);
dataStream.Position = offset;
return Create(dataStream);
}
/// <summary>

View File

@@ -233,18 +233,9 @@ namespace BurnOutSharp.Wrappers
/// <returns>An NE executable wrapper on success, null on failure</returns>
public static NewExecutable Create(byte[] data, int offset)
{
var executable = Builder.NewExecutable.ParseExecutable(data, offset);
if (executable == null)
return null;
var wrapper = new NewExecutable
{
_executable = executable,
_dataSource = DataSource.ByteArray,
_byteArrayData = data,
_byteArrayOffset = offset,
};
return wrapper;
MemoryStream dataStream = new MemoryStream(data);
dataStream.Position = offset;
return Create(dataStream);
}
/// <summary>

View File

@@ -871,18 +871,9 @@ namespace BurnOutSharp.Wrappers
/// <returns>A PE executable wrapper on success, null on failure</returns>
public static PortableExecutable Create(byte[] data, int offset)
{
var executable = Builder.PortableExecutable.ParseExecutable(data, offset);
if (executable == null)
return null;
var wrapper = new PortableExecutable
{
_executable = executable,
_dataSource = DataSource.ByteArray,
_byteArrayData = data,
_byteArrayOffset = offset,
};
return wrapper;
MemoryStream dataStream = new MemoryStream(data);
dataStream.Position = offset;
return Create(dataStream);
}
/// <summary>