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

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

Issue 1160873002: Sundry service protocol cleanups before version 1.0. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: pre commit Created 5 years, 6 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
« no previous file with comments | « runtime/vm/message.cc ('k') | runtime/vm/object_test.cc » ('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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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/object.h" 5 #include "vm/object.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/assembler.h" 9 #include "vm/assembler.h"
10 #include "vm/cpu.h" 10 #include "vm/cpu.h"
(...skipping 4108 matching lines...) Expand 10 before | Expand all | Expand 10 after
4119 const String& vm_name = String::Handle(Name()); 4119 const String& vm_name = String::Handle(Name());
4120 AddNameProperties(&jsobj, user_name, vm_name); 4120 AddNameProperties(&jsobj, user_name, vm_name);
4121 if (ref) { 4121 if (ref) {
4122 return; 4122 return;
4123 } 4123 }
4124 4124
4125 const Error& err = Error::Handle(EnsureIsFinalized(Isolate::Current())); 4125 const Error& err = Error::Handle(EnsureIsFinalized(Isolate::Current()));
4126 if (!err.IsNull()) { 4126 if (!err.IsNull()) {
4127 jsobj.AddProperty("error", err); 4127 jsobj.AddProperty("error", err);
4128 } 4128 }
4129 jsobj.AddProperty("implemented", is_implemented());
4130 jsobj.AddProperty("abstract", is_abstract()); 4129 jsobj.AddProperty("abstract", is_abstract());
4131 jsobj.AddProperty("patch", is_patch());
4132 jsobj.AddProperty("finalized", is_finalized());
4133 jsobj.AddProperty("const", is_const()); 4130 jsobj.AddProperty("const", is_const());
4131 jsobj.AddProperty("_finalized", is_finalized());
4132 jsobj.AddProperty("_implemented", is_implemented());
4133 jsobj.AddProperty("_patch", is_patch());
4134 const Class& superClass = Class::Handle(SuperClass()); 4134 const Class& superClass = Class::Handle(SuperClass());
4135 if (!superClass.IsNull()) { 4135 if (!superClass.IsNull()) {
4136 jsobj.AddProperty("super", superClass); 4136 jsobj.AddProperty("super", superClass);
4137 } 4137 }
4138 jsobj.AddProperty("library", Object::Handle(library())); 4138 jsobj.AddProperty("library", Object::Handle(library()));
4139 const Script& script = Script::Handle(this->script()); 4139 const Script& script = Script::Handle(this->script());
4140 if (!script.IsNull()) { 4140 if (!script.IsNull()) {
4141 jsobj.AddProperty("script", script); 4141 jsobj.AddProperty("script", script);
4142 jsobj.AddProperty("tokenPos", token_pos()); 4142 jsobj.AddProperty("tokenPos", token_pos());
4143 jsobj.AddProperty("endTokenPos", ComputeEndTokenPos()); 4143 jsobj.AddProperty("endTokenPos", ComputeEndTokenPos());
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
4186 // types to the vmservice. 4186 // types to the vmservice.
4187 subclass ^= subclasses.At(i); 4187 subclass ^= subclasses.At(i);
4188 subclasses_array.AddValue(subclass); 4188 subclasses_array.AddValue(subclass);
4189 } 4189 }
4190 } 4190 }
4191 } 4191 }
4192 { 4192 {
4193 ClassTable* class_table = Isolate::Current()->class_table(); 4193 ClassTable* class_table = Isolate::Current()->class_table();
4194 const ClassHeapStats* stats = class_table->StatsWithUpdatedSize(id()); 4194 const ClassHeapStats* stats = class_table->StatsWithUpdatedSize(id());
4195 if (stats != NULL) { 4195 if (stats != NULL) {
4196 JSONObject allocation_stats(&jsobj, "allocationStats"); 4196 JSONObject allocation_stats(&jsobj, "_allocationStats");
4197 stats->PrintToJSONObject(*this, &allocation_stats); 4197 stats->PrintToJSONObject(*this, &allocation_stats);
4198 } 4198 }
4199 } 4199 }
4200 } 4200 }
4201 4201
4202 4202
4203 void Class::InsertCanonicalConstant(intptr_t index, 4203 void Class::InsertCanonicalConstant(intptr_t index,
4204 const Instance& constant) const { 4204 const Instance& constant) const {
4205 // The constant needs to be added to the list. Grow the list if it is full. 4205 // The constant needs to be added to the list. Grow the list if it is full.
4206 Array& canonical_list = Array::Handle(constants()); 4206 Array& canonical_list = Array::Handle(constants());
(...skipping 2677 matching lines...) Expand 10 before | Expand all | Expand 10 after
6884 if (!parent.IsNull()) { 6884 if (!parent.IsNull()) {
6885 jsobj.AddProperty("owner", parent); 6885 jsobj.AddProperty("owner", parent);
6886 } else if (cls.IsTopLevel()) { 6886 } else if (cls.IsTopLevel()) {
6887 const Library& library = Library::Handle(cls.library()); 6887 const Library& library = Library::Handle(cls.library());
6888 jsobj.AddProperty("owner", library); 6888 jsobj.AddProperty("owner", library);
6889 } else { 6889 } else {
6890 jsobj.AddProperty("owner", cls); 6890 jsobj.AddProperty("owner", cls);
6891 } 6891 }
6892 6892
6893 const char* kind_string = Function::KindToCString(kind()); 6893 const char* kind_string = Function::KindToCString(kind());
6894 jsobj.AddProperty("kind", kind_string); 6894 jsobj.AddProperty("_kind", kind_string);
6895 jsobj.AddProperty("static", is_static());
6896 jsobj.AddProperty("const", is_const());
6895 if (ref) { 6897 if (ref) {
6896 return; 6898 return;
6897 } 6899 }
6898 jsobj.AddProperty("static", is_static());
6899 jsobj.AddProperty("const", is_const());
6900 Code& code = Code::Handle(CurrentCode()); 6900 Code& code = Code::Handle(CurrentCode());
6901 if (!code.IsNull()) { 6901 if (!code.IsNull()) {
6902 jsobj.AddProperty("code", code); 6902 jsobj.AddProperty("code", code);
6903 } 6903 }
6904 jsobj.AddProperty("_optimizable", is_optimizable()); 6904 jsobj.AddProperty("_optimizable", is_optimizable());
6905 jsobj.AddProperty("_inlinable", is_inlinable()); 6905 jsobj.AddProperty("_inlinable", is_inlinable());
6906 code = unoptimized_code(); 6906 code = unoptimized_code();
6907 if (!code.IsNull()) { 6907 if (!code.IsNull()) {
6908 jsobj.AddProperty("_unoptimizedCode", code); 6908 jsobj.AddProperty("_unoptimizedCode", code);
6909 } 6909 }
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
7223 JSONObject jsobj(stream); 7223 JSONObject jsobj(stream);
7224 Class& cls = Class::Handle(owner()); 7224 Class& cls = Class::Handle(owner());
7225 intptr_t id = cls.FindFieldIndex(*this); 7225 intptr_t id = cls.FindFieldIndex(*this);
7226 ASSERT(id >= 0); 7226 ASSERT(id >= 0);
7227 intptr_t cid = cls.id(); 7227 intptr_t cid = cls.id();
7228 AddTypeProperties(&jsobj, "Field", JSONType(), ref); 7228 AddTypeProperties(&jsobj, "Field", JSONType(), ref);
7229 jsobj.AddFixedServiceId("classes/%" Pd "/fields/%" Pd "", cid, id); 7229 jsobj.AddFixedServiceId("classes/%" Pd "/fields/%" Pd "", cid, id);
7230 const String& user_name = String::Handle(PrettyName()); 7230 const String& user_name = String::Handle(PrettyName());
7231 const String& vm_name = String::Handle(name()); 7231 const String& vm_name = String::Handle(name());
7232 AddNameProperties(&jsobj, user_name, vm_name); 7232 AddNameProperties(&jsobj, user_name, vm_name);
7233 if (is_static()) {
7234 const Instance& valueObj = Instance::Handle(value());
7235 jsobj.AddProperty("value", valueObj);
7236 }
7237
7238 if (cls.IsTopLevel()) { 7233 if (cls.IsTopLevel()) {
7239 const Library& library = Library::Handle(cls.library()); 7234 const Library& library = Library::Handle(cls.library());
7240 jsobj.AddProperty("owner", library); 7235 jsobj.AddProperty("owner", library);
7241 } else { 7236 } else {
7242 jsobj.AddProperty("owner", cls); 7237 jsobj.AddProperty("owner", cls);
7243 } 7238 }
7244 7239
7245 AbstractType& declared_type = AbstractType::Handle(type()); 7240 AbstractType& declared_type = AbstractType::Handle(type());
7246 jsobj.AddProperty("declaredType", declared_type); 7241 jsobj.AddProperty("declaredType", declared_type);
7247 jsobj.AddProperty("static", is_static()); 7242 jsobj.AddProperty("static", is_static());
7248 jsobj.AddProperty("final", is_final()); 7243 jsobj.AddProperty("final", is_final());
7249 jsobj.AddProperty("const", is_const()); 7244 jsobj.AddProperty("const", is_const());
7250 if (ref) { 7245 if (ref) {
7251 return; 7246 return;
7252 } 7247 }
7248 if (is_static()) {
7249 const Instance& valueObj = Instance::Handle(value());
7250 jsobj.AddProperty("staticValue", valueObj);
7251 }
7252
7253 jsobj.AddProperty("_guardNullable", is_nullable()); 7253 jsobj.AddProperty("_guardNullable", is_nullable());
7254 if (guarded_cid() == kIllegalCid) { 7254 if (guarded_cid() == kIllegalCid) {
7255 jsobj.AddProperty("_guardClass", "unknown"); 7255 jsobj.AddProperty("_guardClass", "unknown");
7256 } else if (guarded_cid() == kDynamicCid) { 7256 } else if (guarded_cid() == kDynamicCid) {
7257 jsobj.AddProperty("_guardClass", "dynamic"); 7257 jsobj.AddProperty("_guardClass", "dynamic");
7258 } else { 7258 } else {
7259 ClassTable* table = Isolate::Current()->class_table(); 7259 ClassTable* table = Isolate::Current()->class_table();
7260 ASSERT(table->IsValidIndex(guarded_cid())); 7260 ASSERT(table->IsValidIndex(guarded_cid()));
7261 cls ^= table->At(guarded_cid()); 7261 cls ^= table->At(guarded_cid());
7262 jsobj.AddProperty("_guardClass", cls); 7262 jsobj.AddProperty("_guardClass", cls);
(...skipping 6858 matching lines...) Expand 10 before | Expand all | Expand 10 after
14121 jsfield.AddProperty("decl", field); 14121 jsfield.AddProperty("decl", field);
14122 jsfield.AddProperty("value", fieldValue); 14122 jsfield.AddProperty("value", fieldValue);
14123 } 14123 }
14124 } 14124 }
14125 } 14125 }
14126 cls = cls.SuperClass(); 14126 cls = cls.SuperClass();
14127 } 14127 }
14128 } 14128 }
14129 14129
14130 if (NumNativeFields() > 0) { 14130 if (NumNativeFields() > 0) {
14131 JSONArray jsarr(jsobj, "nativeFields"); 14131 JSONArray jsarr(jsobj, "_nativeFields");
14132 for (intptr_t i = 0; i < NumNativeFields(); i++) { 14132 for (intptr_t i = 0; i < NumNativeFields(); i++) {
14133 intptr_t value = GetNativeField(i); 14133 intptr_t value = GetNativeField(i);
14134 JSONObject jsfield(&jsarr); 14134 JSONObject jsfield(&jsarr);
14135 jsfield.AddProperty("index", i); 14135 jsfield.AddProperty("index", i);
14136 jsfield.AddProperty("value", value); 14136 jsfield.AddProperty("value", value);
14137 } 14137 }
14138 } 14138 }
14139 } 14139 }
14140 14140
14141 14141
(...skipping 6656 matching lines...) Expand 10 before | Expand all | Expand 10 after
20798 return tag_label.ToCString(); 20798 return tag_label.ToCString();
20799 } 20799 }
20800 20800
20801 20801
20802 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { 20802 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const {
20803 Instance::PrintJSONImpl(stream, ref); 20803 Instance::PrintJSONImpl(stream, ref);
20804 } 20804 }
20805 20805
20806 20806
20807 } // namespace dart 20807 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/message.cc ('k') | runtime/vm/object_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698