Bug 1439682 - Guard against large chunk allocation failure. r?nical
MozReview-Commit-ID: 86bHHKgxxcv
--- a/gfx/layers/wr/IpcResourceUpdateQueue.cpp
+++ b/gfx/layers/wr/IpcResourceUpdateQueue.cpp
@@ -32,18 +32,21 @@ ShmSegmentsWriter::~ShmSegmentsWriter()
layers::OffsetRange
ShmSegmentsWriter::Write(Range<uint8_t> aBytes)
{
const size_t start = mCursor;
const size_t length = aBytes.length();
if (length >= mChunkSize * 4) {
auto range = AllocLargeChunk(length);
- uint8_t* dstPtr = mLargeAllocs.LastElement().get<uint8_t>();
- memcpy(dstPtr, aBytes.begin().get(), length);
+ if (range.length()) {
+ // Allocation was successful
+ uint8_t* dstPtr = mLargeAllocs.LastElement().get<uint8_t>();
+ memcpy(dstPtr, aBytes.begin().get(), length);
+ }
return range;
}
int remainingBytesToCopy = length;
size_t srcCursor = 0;
size_t dstCursor = mCursor;
size_t currAllocLen = mSmallAllocs.Length();