Index: Source/wtf/ArrayBuffer.cpp |
diff --git a/Source/wtf/ArrayBuffer.cpp b/Source/wtf/ArrayBuffer.cpp |
index cfbdc9de1418bca9204a2a7a94e37116d28251ac..21eafab9d65bc3465a270e27e2043dd9c6b16a67 100644 |
--- a/Source/wtf/ArrayBuffer.cpp |
+++ b/Source/wtf/ArrayBuffer.cpp |
@@ -33,10 +33,11 @@ namespace WTF { |
bool ArrayBuffer::transfer(ArrayBufferContents& result) |
{ |
+ ASSERT(!isShared()); |
RefPtr<ArrayBuffer> keepAlive(this); |
if (!m_contents.data()) { |
- result.clear(); |
+ result.neuter(); |
return false; |
} |
@@ -66,6 +67,20 @@ bool ArrayBuffer::transfer(ArrayBufferContents& result) |
return true; |
} |
+bool ArrayBuffer::shareContentsWith(ArrayBufferContents& result) |
+{ |
+ ASSERT(isShared()); |
+ RefPtr<ArrayBuffer> keepAlive(this); |
+ |
+ if (!m_contents.data()) { |
+ result.neuter(); |
+ return false; |
+ } |
+ |
+ m_contents.shareWith(result); |
+ return true; |
+} |
+ |
void ArrayBuffer::addView(ArrayBufferView* view) |
{ |
view->m_buffer = this; |