Index: third_party/WebKit/Source/wtf/ArrayBufferBuilder.cpp |
diff --git a/third_party/WebKit/Source/wtf/ArrayBufferBuilder.cpp b/third_party/WebKit/Source/wtf/ArrayBufferBuilder.cpp |
index 78a7447e23b99407fa47bc313b3a1b68d4739533..ee44bed7f85fa529fc4594db28e00836c4a7db2d 100644 |
--- a/third_party/WebKit/Source/wtf/ArrayBufferBuilder.cpp |
+++ b/third_party/WebKit/Source/wtf/ArrayBufferBuilder.cpp |
@@ -42,7 +42,7 @@ ArrayBufferBuilder::ArrayBufferBuilder() |
: m_bytesUsed(0) |
, m_variableCapacity(true) |
{ |
- m_buffer = ArrayBuffer::create(defaultBufferCapacity, 1); |
+ m_buffer = ArrayBuffer::createOrNull(defaultBufferCapacity, 1); |
} |
bool ArrayBufferBuilder::expandCapacity(unsigned sizeToIncrease) |
@@ -64,7 +64,7 @@ bool ArrayBufferBuilder::expandCapacity(unsigned sizeToIncrease) |
newBufferSize = exponentialGrowthNewBufferSize; |
// Copy existing data in current buffer to new buffer. |
- RefPtr<ArrayBuffer> newBuffer = ArrayBuffer::create(newBufferSize, 1); |
+ RefPtr<ArrayBuffer> newBuffer = ArrayBuffer::createOrNull(newBufferSize, 1); |
if (!newBuffer) |
return false; |
@@ -106,7 +106,10 @@ PassRefPtr<ArrayBuffer> ArrayBufferBuilder::toArrayBuffer() |
if (m_buffer->byteLength() == m_bytesUsed) |
return m_buffer; |
- return m_buffer->slice(0, m_bytesUsed); |
+ RefPtr<ArrayBuffer> tmp = m_buffer->sliceOrNull(0, m_bytesUsed); |
+ if (tmp) |
+ return tmp; |
+ return m_buffer; |
} |
String ArrayBufferBuilder::toString() |
@@ -118,8 +121,11 @@ void ArrayBufferBuilder::shrinkToFit() |
{ |
ASSERT(m_bytesUsed <= m_buffer->byteLength()); |
- if (m_buffer->byteLength() > m_bytesUsed) |
- m_buffer = m_buffer->slice(0, m_bytesUsed); |
+ if (m_buffer->byteLength() > m_bytesUsed) { |
+ RefPtr<ArrayBuffer> tmp = m_buffer->sliceOrNull(0, m_bytesUsed); |
+ if (tmp) |
+ m_buffer = tmp; |
+ } |
} |
} // namespace WTF |