Index: runtime/vm/program_visitor.cc |
diff --git a/runtime/vm/program_visitor.cc b/runtime/vm/program_visitor.cc |
deleted file mode 100644 |
index 4a41925b7f74bd9abcabaa6b80478ebf18f876f8..0000000000000000000000000000000000000000 |
--- a/runtime/vm/program_visitor.cc |
+++ /dev/null |
@@ -1,95 +0,0 @@ |
-// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-#include "vm/program_visitor.h" |
- |
-#include "vm/object.h" |
-#include "vm/object_store.h" |
- |
-namespace dart { |
- |
-void ProgramVisitor::VisitClasses(ClassVisitor* visitor) { |
- Thread* thread = Thread::Current(); |
- Isolate* isolate = thread->isolate(); |
- Zone* zone = thread->zone(); |
- GrowableObjectArray& libraries = |
- GrowableObjectArray::Handle(zone, isolate->object_store()->libraries()); |
- Library& lib = Library::Handle(zone); |
- Class& cls = Class::Handle(zone); |
- |
- for (intptr_t i = 0; i < libraries.Length(); i++) { |
- lib ^= libraries.At(i); |
- ClassDictionaryIterator it(lib, ClassDictionaryIterator::kIteratePrivate); |
- while (it.HasNext()) { |
- cls = it.GetNextClass(); |
- if (cls.IsDynamicClass()) { |
- continue; // class 'dynamic' is in the read-only VM isolate. |
- } |
- visitor->Visit(cls); |
- } |
- } |
-} |
- |
- |
-void ProgramVisitor::VisitFunctions(FunctionVisitor* visitor) { |
- Thread* thread = Thread::Current(); |
- Isolate* isolate = thread->isolate(); |
- Zone* zone = thread->zone(); |
- GrowableObjectArray& libraries = |
- GrowableObjectArray::Handle(zone, isolate->object_store()->libraries()); |
- Library& lib = Library::Handle(zone); |
- Class& cls = Class::Handle(zone); |
- Array& functions = Array::Handle(zone); |
- Array& fields = Array::Handle(zone); |
- Field& field = Field::Handle(zone); |
- Object& object = Object::Handle(zone); |
- Function& function = Function::Handle(zone); |
- GrowableObjectArray& closures = GrowableObjectArray::Handle(zone); |
- |
- for (intptr_t i = 0; i < libraries.Length(); i++) { |
- lib ^= libraries.At(i); |
- ClassDictionaryIterator it(lib, ClassDictionaryIterator::kIteratePrivate); |
- while (it.HasNext()) { |
- cls = it.GetNextClass(); |
- if (cls.IsDynamicClass()) { |
- continue; // class 'dynamic' is in the read-only VM isolate. |
- } |
- |
- functions = cls.functions(); |
- for (intptr_t j = 0; j < functions.Length(); j++) { |
- function ^= functions.At(j); |
- visitor->Visit(function); |
- if (function.HasImplicitClosureFunction()) { |
- function = function.ImplicitClosureFunction(); |
- visitor->Visit(function); |
- } |
- } |
- |
- functions = cls.invocation_dispatcher_cache(); |
- for (intptr_t j = 0; j < functions.Length(); j++) { |
- object = functions.At(j); |
- if (object.IsFunction()) { |
- function ^= functions.At(j); |
- visitor->Visit(function); |
- } |
- } |
- fields = cls.fields(); |
- for (intptr_t j = 0; j < fields.Length(); j++) { |
- field ^= fields.At(j); |
- if (field.is_static() && field.HasPrecompiledInitializer()) { |
- function ^= field.PrecompiledInitializer(); |
- visitor->Visit(function); |
- } |
- } |
- } |
- } |
- closures = isolate->object_store()->closure_functions(); |
- for (intptr_t j = 0; j < closures.Length(); j++) { |
- function ^= closures.At(j); |
- visitor->Visit(function); |
- ASSERT(!function.HasImplicitClosureFunction()); |
- } |
-} |
- |
-} // namespace dart |