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

Unified Diff: runtime/vm/kernel_reader.cc

Issue 2632253002: VM: [Kernel] Partial support for metadata annotations (Closed)
Patch Set: Address comments Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/kernel_reader.h ('k') | runtime/vm/kernel_to_il.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/kernel_reader.cc
diff --git a/runtime/vm/kernel_reader.cc b/runtime/vm/kernel_reader.cc
index 11daaa36a57a7e657769d7e3ec2f67d766ef49e0..f0be6f6fb9b25b868359d98b11ba218fe52377a2 100644
--- a/runtime/vm/kernel_reader.cc
+++ b/runtime/vm/kernel_reader.cc
@@ -200,7 +200,7 @@ void KernelReader::ReadLibrary(Library* kernel_library) {
// Load all classes.
for (intptr_t i = 0; i < kernel_library->classes().length(); i++) {
Class* kernel_klass = kernel_library->classes()[i];
- classes.Add(ReadClass(library, kernel_klass), Heap::kOld);
+ classes.Add(ReadClass(library, toplevel_class, kernel_klass), Heap::kOld);
}
classes.Add(toplevel_class, Heap::kOld);
@@ -281,6 +281,7 @@ void KernelReader::ReadPreliminaryClass(dart::Class* klass,
dart::Class& KernelReader::ReadClass(const dart::Library& library,
+ const dart::Class& toplevel_class,
Class* kernel_klass) {
// This will trigger a call to [ReadPreliminaryClass] if not already done.
dart::Class& klass = LookupClass(kernel_klass);
@@ -334,6 +335,11 @@ dart::Class& KernelReader::ReadClass(const dart::Library& library,
kernel_constructor->function(),
true, // is_method
false); // is_closure
+
+ if (FLAG_enable_mirrors) {
+ library.AddFunctionMetadata(function, TokenPosition::kNoSource,
+ kernel_constructor);
+ }
}
for (intptr_t i = 0; i < kernel_klass->procedures().length(); i++) {
@@ -346,6 +352,11 @@ dart::Class& KernelReader::ReadClass(const dart::Library& library,
klass.set_is_marked_for_parsing();
}
+ if (FLAG_enable_mirrors) {
+ library.AddClassMetadata(klass, toplevel_class, TokenPosition::kNoSource,
+ kernel_klass);
+ }
+
return klass;
}
@@ -422,6 +433,10 @@ void KernelReader::ReadProcedure(const dart::Library& library,
H.DartProcedureName(kernel_procedure)))
.IsNull());
}
+ if (FLAG_enable_mirrors) {
+ library.AddFunctionMetadata(function, TokenPosition::kNoSource,
+ kernel_procedure);
+ }
}
const Object& KernelReader::ClassForScriptAt(const dart::Class& klass,
« no previous file with comments | « runtime/vm/kernel_reader.h ('k') | runtime/vm/kernel_to_il.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698