Browse Source

Reservoir: Fix bug where incorrect buffer region could be read in some cases

v6.1.6
reuk 4 years ago
parent
commit
d5e9793cb1
No known key found for this signature in database GPG Key ID: 9ADCD339CFC98A11
1 changed files with 8 additions and 8 deletions
  1. +8
    -8
      modules/juce_core/memory/juce_Reservoir.h

+ 8
- 8
modules/juce_core/memory/juce_Reservoir.h View File

@@ -74,9 +74,15 @@ struct Reservoir
{
while (! rangeToRead.isEmpty())
{
const auto rangeToReadInBuffer = rangeToRead.getIntersectionWith (getBufferedRange());
const auto bufferedRange = getBufferedRange();
if (rangeToReadInBuffer.isEmpty())
if (bufferedRange.contains (rangeToRead.getStart()))
{
const auto rangeToReadInBuffer = rangeToRead.getIntersectionWith (getBufferedRange());
readFromReservoir (rangeToReadInBuffer);
rangeToRead.setStart (rangeToReadInBuffer.getEnd());
}
else
{
fillReservoir (rangeToRead.getStart());
@@ -85,12 +91,6 @@ struct Reservoir
if (newRange.isEmpty() || ! newRange.contains (rangeToRead.getStart()))
break;
}
else
{
readFromReservoir (rangeToReadInBuffer);
rangeToRead.setStart (rangeToReadInBuffer.getEnd());
}
}
return rangeToRead;


Loading…
Cancel
Save