зеркало из https://github.com/mozilla/gecko-dev.git
4479d80c10
Regardless of the size of an encoded image, SourceBuffer::Compact would try to consolidate all of the chunks into a single chunk. If an image is quite large, it can be actively harmful to do this, because we want a very large contiguous chunk of memory for no real reason, and spend extra time on the main thread doing the memcpy/consolidation. Instead we now cap out the chunk size at 20MB. If we start allocating chunks of this size, we will not perform compacting when we have received all of the data. (Save for realloc'ing the last chunk since it probably isn't full.) On a related note, if we hit an out-of-memory condition in the middle of appending data to the SourceBuffer, we would swallow the error. This is because nsIInputStream::ReadSegments will succeed if any data was written. This leaves the SourceBuffer out of sync. We now propogate this error up properly to the higher levels. fixup |
||
---|---|---|
.. | ||
browser | ||
crashtests | ||
fuzzing | ||
gtest | ||
mochitest | ||
reftest | ||
unit |