Reviewers: Mads Ager, Description: Move some more ENTER_V8 invocations. The biggest one is to move the one in v8::V8::Initialize to after the early bailout.
Please review this at http://codereview.chromium.org/60083 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/api.cc Index: src/api.cc =================================================================== --- src/api.cc (revision 1672) +++ src/api.cc (working copy) @@ -1455,11 +1455,14 @@ Local<Boolean> Value::ToBoolean() const { if (IsDeadCheck("v8::Value::ToBoolean()")) return Local<Boolean>(); LOG_API("ToBoolean"); - ENTER_V8; i::Handle<i::Object> obj = Utils::OpenHandle(this); - i::Handle<i::Object> val = - obj->IsBoolean() ? obj : i::Execution::ToBoolean(obj); - return Local<Boolean>(ToApi<Boolean>(val)); + if (obj->IsBoolean()) { + return Local<Boolean>(ToApi<Boolean>(obj)); + } else { + ENTER_V8; + i::Handle<i::Object> val = i::Execution::ToBoolean(obj); + return Local<Boolean>(ToApi<Boolean>(val)); + } } @@ -1580,11 +1583,14 @@ bool Value::BooleanValue() const { if (IsDeadCheck("v8::Value::BooleanValue()")) return false; LOG_API("BooleanValue"); - ENTER_V8; i::Handle<i::Object> obj = Utils::OpenHandle(this); - i::Handle<i::Object> value = - obj->IsBoolean() ? obj : i::Execution::ToBoolean(obj); - return value->IsTrue(); + if (obj->IsBoolean()) { + return obj->IsTrue(); + } else { + ENTER_V8; + i::Handle<i::Object> value = i::Execution::ToBoolean(obj); + return value->IsTrue(); + } } @@ -2347,8 +2353,8 @@ // --- E n v i r o n m e n t --- bool v8::V8::Initialize() { + if (i::V8::HasBeenSetup()) return true; ENTER_V8; - if (i::V8::HasBeenSetup()) return true; HandleScope scope; if (i::Snapshot::Initialize()) { return true; --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
