diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc index 75316219a44a..6a6ce56f2626 100644 --- a/runtime/vm/class_finalizer.cc +++ b/runtime/vm/class_finalizer.cc @@ -1151,14 +1151,6 @@ void ClassFinalizer::FinalizeClass(const Class& cls) { } #endif // !defined(DART_PRECOMPILED_RUNTIME) - if (cls.is_patch()) { - // The fields and functions of a patch class are copied to the - // patched class after parsing. There is nothing to finalize. - ASSERT(Array::Handle(cls.functions()).Length() == 0); - ASSERT(Array::Handle(cls.fields()).Length() == 0); - cls.set_is_finalized(); - return; - } // Ensure super class is finalized. const Class& super = Class::Handle(cls.SuperClass()); if (!super.IsNull()) { @@ -1426,7 +1418,7 @@ void ClassFinalizer::SortClasses() { continue; } cls = table->At(cid); - if (cls.is_patch() || !cls.is_declaration_loaded()) { + if (!cls.is_declaration_loaded()) { continue; } if (cls.SuperClass() == I->object_store()->object_class()) { diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc index 8e46a8c13e8b..308d0b9175b2 100644 --- a/runtime/vm/compiler/backend/il.cc +++ b/runtime/vm/compiler/backend/il.cc @@ -202,7 +202,6 @@ void HierarchyInfo::BuildRangesFor(ClassTable* table, if (cid == kNullCid && !exclude_null) continue; cls = table->At(cid); if (!include_abstract && cls.is_abstract()) continue; - if (cls.is_patch()) continue; if (cls.IsTopLevel()) continue; // We are either interested in [CidRange]es of subclasses or subtypes. @@ -310,7 +309,7 @@ void HierarchyInfo::BuildRangesForJIT(ClassTable* table, for (; j < current_cid; ++j) { if (table->HasValidClassAt(j)) { klass = table->At(j); - if (!klass.is_patch() && !klass.IsTopLevel()) { + if (!klass.IsTopLevel()) { // If we care about abstract classes also, we cannot skip over any // arbitrary abstract class, only those which are subtypes. if (include_abstract) { diff --git a/runtime/vm/isolate_reload.cc b/runtime/vm/isolate_reload.cc index 6c83404d48a4..ddc501c3cf78 100644 --- a/runtime/vm/isolate_reload.cc +++ b/runtime/vm/isolate_reload.cc @@ -404,11 +404,6 @@ class BecomeMapTraits { }; bool IsolateReloadContext::IsSameClass(const Class& a, const Class& b) { - if (a.is_patch() != b.is_patch()) { - // TODO(johnmccutchan): Should we just check the class kind bits? - return false; - } - // TODO(turnidge): We need to look at generic type arguments for // synthetic mixin classes. Their names are not necessarily unique // currently. diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc index db3458aa081b..6c402b82875e 100644 --- a/runtime/vm/object.cc +++ b/runtime/vm/object.cc @@ -4757,10 +4757,6 @@ void Class::set_is_type_finalized() const { raw_ptr()->state_bits_)); } -void Class::set_is_patch() const { - set_state_bits(PatchBit::update(true, raw_ptr()->state_bits_)); -} - void Class::set_is_synthesized_class() const { set_state_bits(SynthesizedClassBit::update(true, raw_ptr()->state_bits_)); } @@ -5440,10 +5436,9 @@ const char* Class::ToCString() const { NoSafepointScope no_safepoint; const Library& lib = Library::Handle(library()); const char* library_name = lib.IsNull() ? "" : lib.ToCString(); - const char* patch_prefix = is_patch() ? "Patch " : ""; const char* class_name = String::Handle(Name()).ToCString(); - return OS::SCreate(Thread::Current()->zone(), "%s %sClass: %s", library_name, - patch_prefix, class_name); + return OS::SCreate(Thread::Current()->zone(), "%s Class: %s", library_name, + class_name); } // Thomas Wang, Integer Hash Functions. diff --git a/runtime/vm/object.h b/runtime/vm/object.h index ccb84d4b7a98..ff4e74646290 100644 --- a/runtime/vm/object.h +++ b/runtime/vm/object.h @@ -1359,9 +1359,6 @@ class Class : public Object { } void set_is_type_finalized() const; - bool is_patch() const { return PatchBit::decode(raw_ptr()->state_bits_); } - void set_is_patch() const; - bool is_synthesized_class() const { return SynthesizedClassBit::decode(raw_ptr()->state_bits_); } @@ -1666,7 +1663,6 @@ class Class : public Object { kClassLoadingPos = kClassFinalizedPos + kClassFinalizedSize, // = 4 kClassLoadingSize = 2, kAbstractBit = kClassLoadingPos + kClassLoadingSize, // = 6 - kPatchBit, kSynthesizedClassBit, kMixinAppAliasBit, kMixinTypeAppliedBit, @@ -1688,7 +1684,6 @@ class Class : public Object { kClassLoadingPos, kClassLoadingSize> {}; class AbstractBit : public BitField {}; - class PatchBit : public BitField {}; class SynthesizedClassBit : public BitField {}; class FieldsMarkedNullableBit diff --git a/runtime/vm/object_service.cc b/runtime/vm/object_service.cc index 2e4bc9bb8832..6b02d340610b 100644 --- a/runtime/vm/object_service.cc +++ b/runtime/vm/object_service.cc @@ -96,7 +96,7 @@ void Class::PrintJSONImpl(JSONStream* stream, bool ref) const { jsobj.AddProperty("const", is_const()); jsobj.AddProperty("_finalized", is_finalized()); jsobj.AddProperty("_implemented", is_implemented()); - jsobj.AddProperty("_patch", is_patch()); + jsobj.AddProperty("_patch", false); jsobj.AddProperty("_traceAllocations", TraceAllocation(isolate)); const Class& superClass = Class::Handle(SuperClass());