Optimizations and memory leak fixes

This commit is contained in:
CloneTrooper1019
2020-08-17 00:33:59 -05:00
parent 0ca6738cb9
commit 297426bdb5
20 changed files with 134 additions and 125 deletions

View File

@ -10,7 +10,7 @@ namespace RobloxFiles.BinaryFormat
public class BinaryRobloxFileReader : BinaryReader
{
public readonly BinaryRobloxFile File;
private byte[] lastStringBuffer = new byte[0] { };
private byte[] lastStringBuffer = Array.Empty<byte>();
public BinaryRobloxFileReader(BinaryRobloxFile file, Stream stream) : base(stream)
{

View File

@ -28,7 +28,7 @@ namespace RobloxFiles.BinaryFormat
// Instances in child->parent order
internal List<Instance> PostInstances { get; private set; }
public BinaryRobloxFileWriter(BinaryRobloxFile file, Stream workBuffer = null) : base(workBuffer ?? new MemoryStream())
public BinaryRobloxFileWriter(BinaryRobloxFile file, Stream workBuffer) : base(workBuffer)
{
File = file;
@ -167,14 +167,13 @@ namespace RobloxFiles.BinaryFormat
if (!instance.Archivable)
continue;
int instId = (int)(File.NumInstances++);
instance.Referent = instId.ToString();
int instId = (int)File.NumInstances++;
string className = instance.ClassName;
instance.Referent = instId.ToInvariantString();
Instances.Add(instance);
string className = instance.ClassName;
INST inst;
if (!ClassMap.TryGetValue(className, out inst))
if (!ClassMap.TryGetValue(className, out INST inst))
{
inst = new INST()
{