Bug 1305791 - Clear result.mSegments if MoveFallible failed. r?billm
MozReview-Commit-ID: 8UaGt1OEfhh
--- a/mfbt/BufferList.h
+++ b/mfbt/BufferList.h
@@ -392,16 +392,17 @@ BufferList<AllocPolicy>::MoveFallible(bo
BufferList<OtherAllocPolicy> result(0, 0, mStandardCapacity, aAP);
IterImpl iter = Iter();
while (!iter.Done()) {
size_t toAdvance = iter.RemainingInSegment();
if (!toAdvance || !result.mSegments.append(typename BufferList<OtherAllocPolicy>::Segment(iter.mData, toAdvance, toAdvance))) {
*aSuccess = false;
+ result.mSegments.clear();
return result;
}
iter.Advance(*this, toAdvance);
}
result.mSize = mSize;
mSegments.clear();
mSize = 0;