Index: third_party/WebKit/Source/wtf/Vector.h |
diff --git a/third_party/WebKit/Source/wtf/Vector.h b/third_party/WebKit/Source/wtf/Vector.h |
index f069d933fca4d57674a09a6260c1682f0210eb9c..6410cd274b0a61d83f0347436d7e832b9ec6956d 100644 |
--- a/third_party/WebKit/Source/wtf/Vector.h |
+++ b/third_party/WebKit/Source/wtf/Vector.h |
@@ -492,6 +492,8 @@ class VectorBuffer<T, 0, Allocator> |
return buffer(); |
} |
+ T** bufferSlot() { return &m_buffer; } |
+ |
protected: |
using Base::m_size; |
@@ -771,6 +773,8 @@ class VectorBuffer : protected VectorBufferBase<T, true, Allocator> { |
return buffer() && buffer() != inlineBuffer(); |
} |
+ T** bufferSlot() { return &m_buffer; } |
+ |
protected: |
using Base::m_size; |
@@ -1603,6 +1607,7 @@ void Vector<T, inlineCapacity, Allocator>::trace(VisitorDispatcher visitor) { |
if (Allocator::isHeapObjectAlive(buffer())) |
return; |
Allocator::markNoTracing(visitor, buffer()); |
+ Allocator::registerBackingStoreReference(visitor, Base::bufferSlot()); |
} |
const T* bufferBegin = buffer(); |
const T* bufferEnd = buffer() + size(); |