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

Unified Diff: Source/bindings/core/v8/V8ScriptWrappable.h

Issue 611833004: [multivm] Re-split fields for V8 and Dart wrappers. (Closed) Base URL: svn://svn.chromium.org/blink/branches/dart/multivm
Patch Set: Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/bindings/common/ScriptWrappable.h ('k') | Source/bindings/core/v8/V8ScriptWrappable.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/core/v8/V8ScriptWrappable.h
diff --git a/Source/bindings/core/v8/V8ScriptWrappable.h b/Source/bindings/core/v8/V8ScriptWrappable.h
index 3a835aa71379eff1a0567bae26029758b699827b..acbe6ec1c129a0599ba3db05dfa6736373646d1e 100644
--- a/Source/bindings/core/v8/V8ScriptWrappable.h
+++ b/Source/bindings/core/v8/V8ScriptWrappable.h
@@ -49,80 +49,24 @@ static void asV8Persistent(v8::Object* object, v8::Persistent<v8::Object>* persi
bool ScriptWrappable::containsV8Wrapper() const
{
- if (LIKELY(m_wrapper.isV8WrapperOrEmpty())) {
- return !m_wrapper.isEmpty();
- }
- TaggedPointer v8WrapperOrTypeInfo = getV8WrapperOrEmpty();
- return !v8WrapperOrTypeInfo.isEmpty();
+ return m_v8Wrapper;
}
// Caller is responsible for putting the type info into the wrapper.
void ScriptWrappable::setV8Wrapper(v8::Object* wrapper)
{
- if (LIKELY(m_wrapper.isEmpty())) {
- m_wrapper = TaggedPointer(wrapper);
- } else if (m_wrapper.isDartWrapperInfo()) {
- ASSERT_NOT_REACHED();
- DartWrapperInfo* wrapperInfo = m_wrapper.dartWrapperInfo();
- if (wrapperInfo->v8WrapperOrEmpty.isEmpty()) {
- wrapperInfo->v8WrapperOrEmpty = TaggedPointer(wrapper);
- } else {
- // Already contains V8 wrapper.
- ASSERT_NOT_REACHED();
- }
- } else if (m_wrapper.isDartMultiWrapperInfo()) {
- DartMultiWrapperInfo* wrapperInfo = m_wrapper.dartMultiWrapperInfo();
- if (wrapperInfo->v8WrapperOrEmpty.isEmpty()) {
- wrapperInfo->v8WrapperOrEmpty = TaggedPointer(wrapper);
- } else {
- // Already contains V8 wrapper.
- ASSERT_NOT_REACHED();
- }
- } else {
- // Already contains V8 wrapper.
- ASSERT_NOT_REACHED();
- }
+ m_v8Wrapper = wrapper;
}
v8::Object* ScriptWrappable::getV8Wrapper() const
{
- if (LIKELY(m_wrapper.isV8WrapperOrEmpty())) {
- return m_wrapper.v8Wrapper();
- }
- TaggedPointer v8WrapperOrTypeInfo = getV8WrapperOrEmpty();
- return v8WrapperOrTypeInfo.v8Wrapper();
+ return m_v8Wrapper;
}
void ScriptWrappable::clearV8Wrapper(v8::Local<v8::Object> wrapper, v8::Persistent<v8::Object>* persistent)
{
- if (LIKELY(m_wrapper.isV8Wrapper())) {
- asV8Persistent(m_wrapper.v8Wrapper(), persistent);
- ASSERT(wrapper == *persistent);
- m_wrapper.clear();
- } else if (m_wrapper.isDartWrapperInfo()) {
- DartWrapperInfo* wrapperInfo = m_wrapper.dartWrapperInfo();
- if (wrapperInfo->v8WrapperOrEmpty.isV8Wrapper()) {
- asV8Persistent(wrapperInfo->v8WrapperOrEmpty.v8Wrapper(), persistent);
- ASSERT(wrapper == *persistent);
- wrapperInfo->v8WrapperOrEmpty.clear();
- } else {
- // Already clear.
- ASSERT_NOT_REACHED();
- }
- } else if (m_wrapper.isDartMultiWrapperInfo()) {
- DartMultiWrapperInfo* wrapperInfo = m_wrapper.dartMultiWrapperInfo();
- if (wrapperInfo->v8WrapperOrEmpty.isV8Wrapper()) {
- asV8Persistent(wrapperInfo->v8WrapperOrEmpty.v8Wrapper(), persistent);
- ASSERT(wrapper == *persistent);
- wrapperInfo->v8WrapperOrEmpty.clear();
- } else {
- // Already clear.
- ASSERT_NOT_REACHED();
- }
- } else {
- // Already clear.
- ASSERT_NOT_REACHED();
- }
+ asV8Persistent(m_v8Wrapper, persistent);
+ m_v8Wrapper = 0;
}
/**
« no previous file with comments | « Source/bindings/common/ScriptWrappable.h ('k') | Source/bindings/core/v8/V8ScriptWrappable.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698