From c3751066b7e7e11fb674bc8926003b9c9af476ae Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 1 Jul 2018 15:43:31 -0400 Subject: [PATCH] Ensures segments are properly sized. --- Storage/Disk/Encodings/MFM/Encoder.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Storage/Disk/Encodings/MFM/Encoder.cpp b/Storage/Disk/Encodings/MFM/Encoder.cpp index 57533ec01..c6c333939 100644 --- a/Storage/Disk/Encodings/MFM/Encoder.cpp +++ b/Storage/Disk/Encodings/MFM/Encoder.cpp @@ -176,10 +176,10 @@ template std::shared_ptr for(std::size_t c = 0; c < post_data_bytes; c++) shifter.add_byte(post_data_value); } - while(segment.data.size() < expected_track_bytes) shifter.add_byte(0x00); + while(segment.data.size() < expected_track_bytes*8) shifter.add_byte(0x00); // Allow the amount of data written to be up to 10% more than the expected size. Which is generous. - std::size_t max_size = expected_track_bytes + (expected_track_bytes / 10); + const std::size_t max_size = (expected_track_bytes + (expected_track_bytes / 10)) * 8; if(segment.data.size() > max_size) segment.data.resize(max_size); return std::shared_ptr(new Storage::Disk::PCMTrack(std::move(segment)));