Reviewers: Sven Panne,

Description:
thread isolate for DebugMessage

R=svenpa...@chromium.org
BUG=

Please review this at https://codereview.chromium.org/23904012/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+10, -1 lines):
  M include/v8-debug.h
  M src/debug-agent.cc
  M src/debug.h
  M src/debug.cc


Index: include/v8-debug.h
diff --git a/include/v8-debug.h b/include/v8-debug.h
index a7d21985b6367719173dac37b467ec817313677e..053b81d2c58933f412de02982a27efb87f268c0d 100755
--- a/include/v8-debug.h
+++ b/include/v8-debug.h
@@ -106,6 +106,8 @@ class V8_EXPORT Debug {
      */
     virtual ClientData* GetClientData() const = 0;

+    virtual Isolate* GetIsolate() const = 0;
+
     virtual ~Message() {}
   };

Index: src/debug-agent.cc
diff --git a/src/debug-agent.cc b/src/debug-agent.cc
index aad36086e945c2c5a88cf241b0b848011413e847..51823aaf24c41a7ae9e5681489399d61149ca0ed 100644
--- a/src/debug-agent.cc
+++ b/src/debug-agent.cc
@@ -38,7 +38,8 @@ namespace internal {
// Public V8 debugger API message handler function. This function just delegates
 // to the debugger agent through it's data parameter.
 void DebuggerAgentMessageHandler(const v8::Debug::Message& message) {
-  DebuggerAgent* agent = Isolate::Current()->debugger_agent_instance();
+  Isolate* isolate = reinterpret_cast<Isolate*>(message.GetIsolate());
+  DebuggerAgent* agent = isolate->debugger_agent_instance();
   ASSERT(agent != NULL);
   agent->DebuggerMessage(message);
 }
Index: src/debug.cc
diff --git a/src/debug.cc b/src/debug.cc
index 7624f26d7ad9490b58fceef330095b8b15f0ca11..3f2739eca040d50a6a70a140db92ba1180e6e94a 100644
--- a/src/debug.cc
+++ b/src/debug.cc
@@ -3624,6 +3624,11 @@ v8::Handle<v8::Object> MessageImpl::GetExecutionState() const {
 }


+v8::Isolate* MessageImpl::GetIsolate() const {
+  return reinterpret_cast<v8::Isolate*>(exec_state_->GetIsolate());
+}
+
+
 v8::Handle<v8::Object> MessageImpl::GetEventData() const {
   return v8::Utils::ToLocal(event_data_);
 }
Index: src/debug.h
diff --git a/src/debug.h b/src/debug.h
index 03ee40e6e66e94ce91b25a77e45f3d48d9200779..2b5f43ab4959cc4b5cf28a9b0323fc689884344e 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -668,6 +668,7 @@ class MessageImpl: public v8::Debug::Message {
   virtual v8::Handle<v8::String> GetJSON() const;
   virtual v8::Handle<v8::Context> GetEventContext() const;
   virtual v8::Debug::ClientData* GetClientData() const;
+  virtual v8::Isolate* GetIsolate() const;

  private:
   MessageImpl(bool is_event,


--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to