From ca5abc580a84085c54bbe4d252714c21425ecdf3 Mon Sep 17 00:00:00 2001 From: Jean-Yves Avenard Date: Wed, 25 Feb 2015 20:35:21 +1100 Subject: [PATCH] Bug 1135532: Allow partial truncation from ResourceQueue. r=cajbir --- dom/media/mediasource/ResourceQueue.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dom/media/mediasource/ResourceQueue.h b/dom/media/mediasource/ResourceQueue.h index 9941830d4cc..75ea0672748 100644 --- a/dom/media/mediasource/ResourceQueue.h +++ b/dom/media/mediasource/ResourceQueue.h @@ -123,6 +123,16 @@ public: SBR_DEBUG("item=%p length=%d offset=%llu", item, item->mData->Length(), mOffset); if (item->mData->Length() + mOffset >= aOffset) { + if (aOffset <= mOffset) { + break; + } + uint32_t offset = aOffset - mOffset; + mOffset += offset; + evicted += offset; + nsRefPtr data = new LargeDataBuffer; + data->AppendElements(item->mData->Elements() + offset, + item->mData->Length() - offset); + item->mData = data; break; } mOffset += item->mData->Length();