OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 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 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 ASSERT(wrappable); | 208 ASSERT(wrappable); |
209 ASSERT(!wrappable->containsWrapper() || !wrappable->isEqualTo(holder) ||
current(v8::Isolate::GetCurrent()).m_isMainWorld); | 209 ASSERT(!wrappable->containsWrapper() || !wrappable->isEqualTo(holder) ||
current(v8::Isolate::GetCurrent()).m_isMainWorld); |
210 return wrappable->isEqualTo(holder); | 210 return wrappable->isEqualTo(holder); |
211 } | 211 } |
212 | 212 |
213 bool m_isMainWorld; | 213 bool m_isMainWorld; |
214 OwnPtr<DOMWrapperMap<ScriptWrappable>> m_wrapperMap; | 214 OwnPtr<DOMWrapperMap<ScriptWrappable>> m_wrapperMap; |
215 }; | 215 }; |
216 | 216 |
217 template<> | 217 template<> |
218 inline void DOMWrapperMap<ScriptWrappable>::PersistentValueMapTraits::Dispose(v8
::Isolate*, v8::Global<v8::Object> value, ScriptWrappable* key) | 218 inline void DOMWrapperMap<ScriptWrappable>::PersistentValueMapTraits::Dispose(v8
::Isolate*, v8::Global<v8::Object> value, ScriptWrappable*) |
219 { | 219 { |
220 auto wrapperTypeInfo = toWrapperTypeInfo(value); | 220 toWrapperTypeInfo(value)->wrapperDestroyed(); |
221 if (wrapperTypeInfo->isGarbageCollected()) | |
222 wrapperTypeInfo->derefObject(); | |
223 else | |
224 wrapperTypeInfo->derefObject(toScriptWrappable(value)); | |
225 } | 221 } |
226 | 222 |
227 template<> | 223 template<> |
228 inline void DOMWrapperMap<ScriptWrappable>::PersistentValueMapTraits::DisposeWea
k(const v8::WeakCallbackInfo<WeakCallbackDataType>& data) | 224 inline void DOMWrapperMap<ScriptWrappable>::PersistentValueMapTraits::DisposeWea
k(const v8::WeakCallbackInfo<WeakCallbackDataType>& data) |
229 { | 225 { |
230 auto wrapperTypeInfo = reinterpret_cast<WrapperTypeInfo*>(data.GetInternalFi
eld(v8DOMWrapperTypeIndex)); | 226 auto wrapperTypeInfo = reinterpret_cast<WrapperTypeInfo*>(data.GetInternalFi
eld(v8DOMWrapperTypeIndex)); |
231 if (wrapperTypeInfo->isGarbageCollected()) | 227 wrapperTypeInfo->wrapperDestroyed(); |
232 wrapperTypeInfo->derefObject(); | |
233 else | |
234 wrapperTypeInfo->derefObject(KeyFromWeakCallbackInfo(data)); | |
235 } | 228 } |
236 | 229 |
237 } // namespace blink | 230 } // namespace blink |
238 | 231 |
239 #endif // DOMDataStore_h | 232 #endif // DOMDataStore_h |
OLD | NEW |