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

Unified Diff: runtime/vm/object.cc

Issue 1477573002: Remove Field::FindFieldIndex() and update service protocol (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month 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/object.h ('k') | runtime/vm/object_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/object.cc
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index d0d351b3004b56b17935d70082b36dd81e4c8ac1..2be8c9452e0997ad2781b317bf121dbe56c09c9c 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -3074,46 +3074,6 @@ void Class::AddFields(const GrowableArray<const Field*>& new_fields) const {
}
-intptr_t Class::FindFieldIndex(const Field& needle) const {
- Thread* thread = Thread::Current();
- if (EnsureIsFinalized(thread) != Error::null()) {
- return -1;
- }
- REUSABLE_ARRAY_HANDLESCOPE(thread);
- REUSABLE_FIELD_HANDLESCOPE(thread);
- REUSABLE_STRING_HANDLESCOPE(thread);
- Array& fields_array = thread->ArrayHandle();
- Field& field = thread->FieldHandle();
- String& field_name = thread->StringHandle();
- fields_array ^= fields();
- ASSERT(!fields_array.IsNull());
- String& needle_name = String::Handle(thread->zone());
- needle_name ^= needle.name();
- const intptr_t len = fields_array.Length();
- for (intptr_t i = 0; i < len; i++) {
- field ^= fields_array.At(i);
- field_name ^= field.name();
- if (field_name.Equals(needle_name)) {
- return i;
- }
- }
- // No field found.
- return -1;
-}
-
-
-RawField* Class::FieldFromIndex(intptr_t idx) const {
- const Array& flds = Array::Handle(fields());
- if ((idx < 0) || (idx >= flds.Length())) {
- return Field::null();
- }
- Field& field = Field::Handle();
- field ^= flds.At(idx);
- ASSERT(!field.IsNull());
- return field.raw();
-}
-
-
template <class FakeInstance>
RawClass* Class::New(intptr_t index) {
ASSERT(Object::class_class() != Class::null());
@@ -7561,14 +7521,17 @@ const char* Field::ToCString() const {
"Field <%s.%s>:%s%s%s", cls_name, field_name, kF0, kF1, kF2);
}
+
void Field::PrintJSONImpl(JSONStream* stream, bool ref) const {
JSONObject jsobj(stream);
Class& cls = Class::Handle(owner());
- intptr_t id = cls.FindFieldIndex(*this);
- ASSERT(id >= 0);
- intptr_t cid = cls.id();
+ String& field_name = String::Handle(name());
+ ASSERT(cls.LookupField(field_name) == this->raw());
+ field_name = String::EncodeIRI(field_name);
AddCommonObjectProperties(&jsobj, "Field", ref);
- jsobj.AddFixedServiceId("classes/%" Pd "/fields/%" Pd "", cid, id);
+ jsobj.AddFixedServiceId("classes/%" Pd "/fields/%s",
+ cls.id(), field_name.ToCString());
+
const String& user_name = String::Handle(PrettyName());
const String& vm_name = String::Handle(name());
AddNameProperties(&jsobj, user_name, vm_name);
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/object_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698