diff --git a/BurnOutSharp/External/libgsf/Input/GsfInfileMSOle.cs b/BurnOutSharp/External/libgsf/Input/GsfInfileMSOle.cs index fd022322..30df4ea3 100644 --- a/BurnOutSharp/External/libgsf/Input/GsfInfileMSOle.cs +++ b/BurnOutSharp/External/libgsf/Input/GsfInfileMSOle.cs @@ -341,7 +341,7 @@ namespace LibGSF.Input //if (FALSE && first_block != last_block) // Console.Error.WriteLine($"Check if {first_block}-{last_block} of {Bat.NumBlocks} are contiguous."); - while (++i <= last_block && ++raw_block == Bat.Block[i]) ; + while (++i <= last_block && ++raw_block == Bat.Block[i]); if (i > last_block) { @@ -362,10 +362,9 @@ namespace LibGSF.Input optional_buffer_ptr = 0; } - byte[] ptr = optional_buffer; - int ptrPtr = optional_buffer_ptr; // ptr[optional_buffer_ptr + 0] + int ptr = optional_buffer_ptr; // optional_buffer[0] int count; - for (i = first_block; i <= last_block; i++, ptrPtr += count, num_bytes -= count) + for (i = first_block; i <= last_block; i++, ptr += count, num_bytes -= count) { count = (int)(Info.BigBlock.Size - offset); if (count > num_bytes) @@ -374,7 +373,7 @@ namespace LibGSF.Input if (!SeekBlock(Bat.Block[i], offset)) return null; - if (Input.Read(count, ptr, ptrPtr) == null) + if (Input.Read(count, optional_buffer, ptr) == null) return null; offset = 0; @@ -679,8 +678,8 @@ namespace LibGSF.Input { Input = input, Info = Info.Ref(), + Stream = new byte[0], }; - // buf and buf_size are initialized to null return dst; } diff --git a/BurnOutSharp/External/libgsf/Input/GsfInputMemory.cs b/BurnOutSharp/External/libgsf/Input/GsfInputMemory.cs index 6ec4bd20..5416695b 100644 --- a/BurnOutSharp/External/libgsf/Input/GsfInputMemory.cs +++ b/BurnOutSharp/External/libgsf/Input/GsfInputMemory.cs @@ -86,7 +86,7 @@ namespace LibGSF.Input if (optional_buffer != null) { - Array.Copy(src, CurrentOffset, optional_buffer, 0, num_bytes); + Array.Copy(src, CurrentOffset, optional_buffer, bufferPtr, num_bytes); return optional_buffer; } else