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

Unified Diff: runtime/vm/service_event.cc

Issue 1978603002: Remove DebuggerEvent. Refactor remaining code. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: before landing Created 4 years, 7 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 | « runtime/vm/service_event.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/service_event.cc
diff --git a/runtime/vm/service_event.cc b/runtime/vm/service_event.cc
index d34f43981d994fb72688e3bc804e7f86fe12d86e..c4732589efd8d69896ebb1e2dd0a9d787e977f8a 100644
--- a/runtime/vm/service_event.cc
+++ b/runtime/vm/service_event.cc
@@ -4,37 +4,14 @@
#include "vm/service_event.h"
+#include "vm/debugger.h"
#include "vm/message_handler.h"
+#include "vm/service_isolate.h"
namespace dart {
#ifndef PRODUCT
-// Translate from the legacy DebugEvent to a ServiceEvent.
-static ServiceEvent::EventKind TranslateEventKind(
- DebuggerEvent::EventType kind) {
- switch (kind) {
- case DebuggerEvent::kIsolateCreated:
- return ServiceEvent::kIsolateStart;
-
- case DebuggerEvent::kIsolateShutdown:
- return ServiceEvent::kIsolateExit;
-
- case DebuggerEvent::kBreakpointReached:
- return ServiceEvent::kPauseBreakpoint;
-
- case DebuggerEvent::kIsolateInterrupted:
- return ServiceEvent::kPauseInterrupted;
-
- case DebuggerEvent::kExceptionThrown:
- return ServiceEvent::kPauseException;
- default:
- UNREACHABLE();
- return ServiceEvent::kIllegal;
- }
-}
-
-
ServiceEvent::ServiceEvent(Isolate* isolate, EventKind event_kind)
: isolate_(isolate),
kind_(event_kind),
@@ -51,6 +28,11 @@ ServiceEvent::ServiceEvent(Isolate* isolate, EventKind event_kind)
bytes_(NULL),
bytes_length_(0),
timestamp_(OS::GetCurrentTimeMillis()) {
+ // We should never generate events for the vm or service isolates.
+ ASSERT(isolate_ != Dart::vm_isolate());
+ ASSERT(isolate == NULL ||
+ !ServiceIsolate::IsServiceIsolateDescendant(isolate_));
+
if ((event_kind == ServiceEvent::kPauseStart) &&
!isolate->message_handler()->is_paused_on_start()) {
// We will pause on start but the message handler lacks a valid
@@ -65,36 +47,8 @@ ServiceEvent::ServiceEvent(Isolate* isolate, EventKind event_kind)
}
-ServiceEvent::ServiceEvent(const DebuggerEvent* debugger_event)
- : isolate_(debugger_event->isolate()),
- kind_(TranslateEventKind(debugger_event->type())),
- breakpoint_(NULL),
- top_frame_(NULL),
- timeline_event_block_(NULL),
- extension_rpc_(NULL),
- exception_(NULL),
- at_async_jump_(false),
- inspectee_(NULL),
- gc_stats_(NULL),
- bytes_(NULL),
- bytes_length_(0),
- timestamp_(OS::GetCurrentTimeMillis()) {
- DebuggerEvent::EventType type = debugger_event->type();
- if (type == DebuggerEvent::kBreakpointReached) {
- set_breakpoint(debugger_event->breakpoint());
- set_at_async_jump(debugger_event->at_async_jump());
- }
- if (type == DebuggerEvent::kExceptionThrown) {
- set_exception(debugger_event->exception());
- }
- if (type == DebuggerEvent::kBreakpointReached ||
- type == DebuggerEvent::kIsolateInterrupted ||
- type == DebuggerEvent::kExceptionThrown) {
- set_top_frame(debugger_event->top_frame());
- }
- if (debugger_event->timestamp() != -1) {
- timestamp_ = debugger_event->timestamp();
- }
+void ServiceEvent::UpdateTimestamp() {
+ timestamp_ = OS::GetCurrentTimeMillis();
}
@@ -155,17 +109,17 @@ const char* ServiceEvent::KindAsCString() const {
}
-const char* ServiceEvent::stream_id() const {
+const StreamInfo* ServiceEvent::stream_info() const {
switch (kind()) {
case kVMUpdate:
- return Service::vm_stream.id();
+ return &Service::vm_stream;
case kIsolateStart:
case kIsolateRunnable:
case kIsolateExit:
case kIsolateUpdate:
case kServiceExtensionAdded:
- return Service::isolate_stream.id();
+ return &Service::isolate_stream;
case kPauseStart:
case kPauseExit:
@@ -179,22 +133,22 @@ const char* ServiceEvent::stream_id() const {
case kBreakpointRemoved:
case kInspect:
case kDebuggerSettingsUpdate:
- return Service::debug_stream.id();
+ return &Service::debug_stream;
case kGC:
- return Service::gc_stream.id();
-
- case kEmbedder:
- return embedder_stream_id_;
+ return &Service::gc_stream;
case kLogging:
- return Service::logging_stream.id();
+ return &Service::logging_stream;
case kExtension:
- return Service::extension_stream.id();
+ return &Service::extension_stream;
case kTimelineEvents:
- return Service::timeline_stream.id();
+ return &Service::timeline_stream;
+
+ case kEmbedder:
+ return NULL;
default:
UNREACHABLE();
@@ -203,6 +157,17 @@ const char* ServiceEvent::stream_id() const {
}
+const char* ServiceEvent::stream_id() const {
+ const StreamInfo* stream = stream_info();
+ if (stream == NULL) {
+ ASSERT(kind() == kEmbedder);
+ return embedder_stream_id_;
+ } else {
+ return stream->id();
+ }
+}
+
+
void ServiceEvent::PrintJSON(JSONStream* js) const {
JSONObject jsobj(js);
PrintJSONHeader(&jsobj);
« no previous file with comments | « runtime/vm/service_event.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698