| Index: third_party/WebKit/Source/platform/heap/Handle.h | 
| diff --git a/third_party/WebKit/Source/platform/heap/Handle.h b/third_party/WebKit/Source/platform/heap/Handle.h | 
| index f8bb60f77477339e150fa20f0ccf977f1a182acd..7c713d3347d1b2ebc9f23508f4c3640ea2c064a9 100644 | 
| --- a/third_party/WebKit/Source/platform/heap/Handle.h | 
| +++ b/third_party/WebKit/Source/platform/heap/Handle.h | 
| @@ -626,17 +626,39 @@ class PersistentHeapHashCountedSet : public PersistentHeapCollectionBase<HeapHas | 
| template<typename T, size_t inlineCapacity = 0> | 
| class PersistentHeapVector : public PersistentHeapCollectionBase<HeapVector<T, inlineCapacity>> { | 
| public: | 
| -    PersistentHeapVector() { } | 
| +    PersistentHeapVector() | 
| +    { | 
| +        initializeUnusedSlots(); | 
| +    } | 
|  | 
| explicit PersistentHeapVector(size_t size) | 
| : PersistentHeapCollectionBase<HeapVector<T, inlineCapacity>>(size) | 
| { | 
| +        initializeUnusedSlots(); | 
| +    } | 
| + | 
| +    PersistentHeapVector(const PersistentHeapVector& other) | 
| +        : PersistentHeapCollectionBase<HeapVector<T, inlineCapacity>>(other) | 
| +    { | 
| +        initializeUnusedSlots(); | 
| } | 
|  | 
| template<size_t otherCapacity> | 
| PersistentHeapVector(const HeapVector<T, otherCapacity>& other) | 
| : PersistentHeapCollectionBase<HeapVector<T, inlineCapacity>>(other) | 
| { | 
| +        initializeUnusedSlots(); | 
| +    } | 
| + | 
| +private: | 
| +    void initializeUnusedSlots() | 
| +    { | 
| +        // The PersistentHeapVector is allocated off heap along with its | 
| +        // inline buffer (if any.) Maintain the invariant that unused | 
| +        // slots are cleared for the off-heap inline buffer also. | 
| +        size_t unusedSlots = this->capacity() - this->size(); | 
| +        if (unusedSlots) | 
| +            this->clearUnusedSlots(this->end(), this->end() + unusedSlots); | 
| } | 
| }; | 
|  | 
|  |