Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(476)

Side by Side Diff: Source/bindings/core/v8/V8PersistentValueMap.h

Issue 806693004: Use new phantom handles for ScriptWrappable. Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Start using V8 phantom handles in Blink Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2014 Google Inc. All rights reserved. 2 * Copyright (C) 2014 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 30 matching lines...) Expand all
41 * A Traits class for v8::PersistentValueMap that uses wtf/HashMap as a 41 * A Traits class for v8::PersistentValueMap that uses wtf/HashMap as a
42 * backing store. 42 * backing store.
43 * 43 *
44 * The parameter is_weak will determine whether the references are 'weak'. 44 * The parameter is_weak will determine whether the references are 'weak'.
45 * If so, entries will be removed from the map as the weak references are 45 * If so, entries will be removed from the map as the weak references are
46 * collected. 46 * collected.
47 */ 47 */
48 template<class KeyType, class ValueType, bool is_weak> 48 template<class KeyType, class ValueType, bool is_weak>
49 class V8PersistentValueMapTraits { 49 class V8PersistentValueMapTraits {
50 public: 50 public:
51 static const bool kUseSetWeak = true;
51 // Map traits: 52 // Map traits:
52 typedef HashMap<KeyType, v8::PersistentContainerValue> Impl; 53 typedef HashMap<KeyType, v8::PersistentContainerValue> Impl;
53 typedef typename Impl::iterator Iterator; 54 typedef typename Impl::iterator Iterator;
54 static size_t Size(const Impl* impl) { return impl->size(); } 55 static size_t Size(const Impl* impl) { return impl->size(); }
55 static bool Empty(Impl* impl) { return impl->isEmpty(); } 56 static bool Empty(Impl* impl) { return impl->isEmpty(); }
56 static void Swap(Impl& impl, Impl& other) { impl.swap(other); } 57 static void Swap(Impl& impl, Impl& other) { impl.swap(other); }
57 static Iterator Begin(Impl* impl) { return impl->begin(); } 58 static Iterator Begin(Impl* impl) { return impl->begin(); }
58 static Iterator End(Impl* impl) { return impl->end(); } 59 static Iterator End(Impl* impl) { return impl->end(); }
59 static v8::PersistentContainerValue Value(Iterator& iter) 60 static v8::PersistentContainerValue Value(Iterator& iter)
60 { 61 {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 template<class KeyType, class ValueType, bool is_weak = true> 120 template<class KeyType, class ValueType, bool is_weak = true>
120 class V8PersistentValueMap : public v8::PersistentValueMap<KeyType, ValueType, V 8PersistentValueMapTraits<KeyType, ValueType, is_weak> > { 121 class V8PersistentValueMap : public v8::PersistentValueMap<KeyType, ValueType, V 8PersistentValueMapTraits<KeyType, ValueType, is_weak> > {
121 public: 122 public:
122 typedef V8PersistentValueMapTraits<KeyType, ValueType, is_weak> Traits; 123 typedef V8PersistentValueMapTraits<KeyType, ValueType, is_weak> Traits;
123 explicit V8PersistentValueMap(v8::Isolate* isolate) : v8::PersistentValueMap <KeyType, ValueType, Traits>(isolate) { } 124 explicit V8PersistentValueMap(v8::Isolate* isolate) : v8::PersistentValueMap <KeyType, ValueType, Traits>(isolate) { }
124 }; 125 };
125 126
126 } // namespace blink 127 } // namespace blink
127 128
128 #endif // V8PersistentValueMap_h 129 #endif // V8PersistentValueMap_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698