Chromium Code Reviews| Index: Source/WebCore/bindings/dart/DartIsolate.h |
| diff --git a/Source/WebCore/bindings/dart/DartIsolate.h b/Source/WebCore/bindings/dart/DartIsolate.h |
| index 8950deed5fd9ec1b1e2183e3d623184502bc3265..c11fc860da57b825c1dbb1f71eced5fe07da3f03 100644 |
| --- a/Source/WebCore/bindings/dart/DartIsolate.h |
| +++ b/Source/WebCore/bindings/dart/DartIsolate.h |
| @@ -31,6 +31,7 @@ |
| #define DartIsolate_h |
| #include <dart_api.h> |
| +#include <wtf/HashMap.h> |
| #include <wtf/RefPtr.h> |
| #include <wtf/ThreadSafeRefCounted.h> |
| @@ -74,10 +75,34 @@ public: |
| RefPtr<DartIsolate> m_isolate; |
| }; |
| + Dart_Handle createWeakPersistentHandle(Dart_Handle object, void* peer, Dart_WeakPersistentHandleFinalizer); |
| + |
| private: |
| DartIsolate(Dart_Isolate); |
| Dart_Isolate m_isolate; |
| + |
| + static void weakCallbackWrapper(Dart_Handle object, void* peer); |
|
Anton Muhin
2012/03/28 18:03:23
do you really need a map here? it looks like all
podivilov
2012/03/28 18:20:05
I will need to dispose persistent handles in some
|
| + |
| + struct WeakCallbackData |
| + { |
| + WeakCallbackData() |
| + : peer(0) |
| + , weakCallback(0) |
| + { |
| + } |
| + |
| + WeakCallbackData(void* peer, Dart_WeakPersistentHandleFinalizer weakCallback) |
| + : peer(peer) |
| + , weakCallback(weakCallback) |
| + { |
| + } |
| + |
| + void* peer; |
| + Dart_WeakPersistentHandleFinalizer weakCallback; |
| + }; |
| + typedef HashMap<Dart_Handle, WeakCallbackData> WeakCallbackMap; |
| + WeakCallbackMap m_weakCallbackMap; |
| }; |