mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-16 18:30:32 +00:00
Ensures segments are properly sized.
This commit is contained in:
parent
77feee8197
commit
c3751066b7
@ -176,10 +176,10 @@ template<class T> std::shared_ptr<Storage::Disk::Track>
|
||||
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<Storage::Disk::Track>(new Storage::Disk::PCMTrack(std::move(segment)));
|
||||
|
Loading…
x
Reference in New Issue
Block a user