mirror of
https://github.com/crskycode/GARbro.git
synced 2026-07-08 01:30:18 +08:00
(DatOpener.OpenEntry): get rid of the intermediate MemoryStream.
This commit is contained in:
@@ -156,13 +156,12 @@ namespace GameRes.Formats.Gs
|
|||||||
{
|
{
|
||||||
if (0 == entry.Size)
|
if (0 == entry.Size)
|
||||||
return Stream.Null;
|
return Stream.Null;
|
||||||
|
var input = arc.File.CreateStream (entry.Offset, entry.Size);
|
||||||
var packed_entry = entry as PackedEntry;
|
var packed_entry = entry as PackedEntry;
|
||||||
if (null == packed_entry)
|
if (null == packed_entry)
|
||||||
return arc.File.CreateStream (entry.Offset, entry.Size);
|
return input;
|
||||||
byte[] packed = new byte[packed_entry.Size];
|
using (input)
|
||||||
arc.File.View.Read (entry.Offset, packed, 0, entry.Size);
|
using (var reader = new LzssReader (input, (int)packed_entry.Size, (int)packed_entry.UnpackedSize))
|
||||||
using (var stream = new MemoryStream (packed))
|
|
||||||
using (var reader = new LzssReader (stream, packed.Length, (int)packed_entry.UnpackedSize))
|
|
||||||
{
|
{
|
||||||
reader.Unpack();
|
reader.Unpack();
|
||||||
return new MemoryStream (reader.Data, false);
|
return new MemoryStream (reader.Data, false);
|
||||||
|
|||||||
Reference in New Issue
Block a user