Chromium Code Reviews| Index: third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h |
| diff --git a/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h b/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h |
| index 4a57a3a73c9d33c6563c4e96086aae56559f9d74..edb53cfd300dbc97a541cdb51dbe6a6cc8c1c9a2 100644 |
| --- a/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h |
| +++ b/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h |
| @@ -49,7 +49,6 @@ |
| namespace blink { |
| -class Modulator; |
| class V8DOMActivityLogger; |
| class V8PerContextData; |
| @@ -104,9 +103,14 @@ class CORE_EXPORT V8PerContextData final { |
| m_activityLogger = activityLogger; |
| } |
| - Modulator* modulator() const { return m_modulator.get(); } |
| - void setModulator(Modulator*); |
| - void clearModulator(); |
| + // Garbage collected classes that use V8PerContextData to hold an instance |
| + // should subclass Data, and use addData / clearData / getData to manage the |
| + // instance. |
| + class CORE_EXPORT Data : public GarbageCollectedMixin {}; |
| + |
| + void addData(const char* key, Data*); |
| + void clearData(const char* key); |
| + Data* getData(const char* key); |
| private: |
| V8PerContextData(v8::Local<v8::Context>); |
| @@ -138,7 +142,9 @@ class CORE_EXPORT V8PerContextData final { |
| // This is owned by a static hash map in V8DOMActivityLogger. |
| V8DOMActivityLogger* m_activityLogger; |
| - Persistent<Modulator> m_modulator; |
| + using DataMap = |
| + PersistentHeapHashMap<const char*, Member<Data>, PtrHash<const char>>; |
|
haraken
2017/04/05 02:08:10
Do we need PtrHash<const char>?
adithyas
2017/04/05 21:45:35
Guess we don't, DefaultHash makes pointer types us
|
| + DataMap m_dataMap; |
| }; |
| } // namespace blink |