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

Side by Side Diff: runtime/vm/service.cc

Issue 1053713003: Do not register service isolate descendants with service (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/vm/service_isolate.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/service.h" 5 #include "vm/service.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "platform/globals.h" 8 #include "platform/globals.h"
9 9
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 522
523 523
524 void Service::SetEventMask(uint32_t mask) { 524 void Service::SetEventMask(uint32_t mask) {
525 event_mask_ = mask; 525 event_mask_ = mask;
526 } 526 }
527 527
528 528
529 void Service::SendEvent(intptr_t eventFamilyId, 529 void Service::SendEvent(intptr_t eventFamilyId,
530 intptr_t eventType, 530 intptr_t eventType,
531 const Object& eventMessage) { 531 const Object& eventMessage) {
532 ASSERT(!ServiceIsolate::IsServiceIsolate(Isolate::Current())); 532 ASSERT(!ServiceIsolate::IsServiceIsolateDescendant(Isolate::Current()));
533 if (!ServiceIsolate::IsRunning()) { 533 if (!ServiceIsolate::IsRunning()) {
534 return; 534 return;
535 } 535 }
536 Isolate* isolate = Isolate::Current(); 536 Isolate* isolate = Isolate::Current();
537 ASSERT(isolate != NULL); 537 ASSERT(isolate != NULL);
538 HANDLESCOPE(isolate); 538 HANDLESCOPE(isolate);
539 539
540 // Construct a list of the form [eventFamilyId, eventMessage]. 540 // Construct a list of the form [eventFamilyId, eventMessage].
541 // 541 //
542 // TODO(turnidge): Revisit passing the eventFamilyId here at all. 542 // TODO(turnidge): Revisit passing the eventFamilyId here at all.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 memmove(message.DataAddr(offset), data, size); 585 memmove(message.DataAddr(offset), data, size);
586 offset += size; 586 offset += size;
587 } 587 }
588 ASSERT(offset == total_bytes); 588 ASSERT(offset == total_bytes);
589 // TODO(turnidge): Pass the real eventType here. 589 // TODO(turnidge): Pass the real eventType here.
590 SendEvent(eventFamilyId, 0, message); 590 SendEvent(eventFamilyId, 0, message);
591 } 591 }
592 592
593 593
594 void Service::HandleGCEvent(GCEvent* event) { 594 void Service::HandleGCEvent(GCEvent* event) {
595 if (ServiceIsolate::IsServiceIsolate(Isolate::Current())) { 595 if (ServiceIsolate::IsServiceIsolateDescendant(Isolate::Current())) {
596 return; 596 return;
597 } 597 }
598 JSONStream js; 598 JSONStream js;
599 event->PrintJSON(&js); 599 event->PrintJSON(&js);
600 const String& message = String::Handle(String::New(js.ToCString())); 600 const String& message = String::Handle(String::New(js.ToCString()));
601 // TODO(turnidge): Pass the real eventType here. 601 // TODO(turnidge): Pass the real eventType here.
602 SendEvent(kEventFamilyGC, 0, message); 602 SendEvent(kEventFamilyGC, 0, message);
603 } 603 }
604 604
605 605
(...skipping 1806 matching lines...) Expand 10 before | Expand all | Expand 10 after
2412 class ServiceIsolateVisitor : public IsolateVisitor { 2412 class ServiceIsolateVisitor : public IsolateVisitor {
2413 public: 2413 public:
2414 explicit ServiceIsolateVisitor(JSONArray* jsarr) 2414 explicit ServiceIsolateVisitor(JSONArray* jsarr)
2415 : jsarr_(jsarr) { 2415 : jsarr_(jsarr) {
2416 } 2416 }
2417 2417
2418 virtual ~ServiceIsolateVisitor() {} 2418 virtual ~ServiceIsolateVisitor() {}
2419 2419
2420 void VisitIsolate(Isolate* isolate) { 2420 void VisitIsolate(Isolate* isolate) {
2421 if ((isolate != Dart::vm_isolate()) && 2421 if ((isolate != Dart::vm_isolate()) &&
2422 !ServiceIsolate::IsServiceIsolate(isolate)) { 2422 !ServiceIsolate::IsServiceIsolateDescendant(isolate)) {
2423 jsarr_->AddValue(isolate); 2423 jsarr_->AddValue(isolate);
2424 } 2424 }
2425 } 2425 }
2426 2426
2427 private: 2427 private:
2428 JSONArray* jsarr_; 2428 JSONArray* jsarr_;
2429 }; 2429 };
2430 2430
2431 2431
2432 static const MethodParameter* get_vm_params[] = { 2432 static const MethodParameter* get_vm_params[] = {
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
2611 ServiceMethodDescriptor& method = service_methods_[i]; 2611 ServiceMethodDescriptor& method = service_methods_[i];
2612 if (strcmp(method_name, method.name) == 0) { 2612 if (strcmp(method_name, method.name) == 0) {
2613 return &method; 2613 return &method;
2614 } 2614 }
2615 } 2615 }
2616 return NULL; 2616 return NULL;
2617 } 2617 }
2618 2618
2619 2619
2620 } // namespace dart 2620 } // namespace dart
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/service_isolate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698