Index: runtime/vm/kernel_reader.h |
diff --git a/runtime/vm/kernel_reader.h b/runtime/vm/kernel_reader.h |
index 8ae0f633e1360acca92e87494aa90436e642f808..ec15abac068b168d5b256fcd1d2c5684eac98aef 100644 |
--- a/runtime/vm/kernel_reader.h |
+++ b/runtime/vm/kernel_reader.h |
@@ -66,6 +66,32 @@ class KernelReader { |
return translation_helper_.DartSymbol(index); |
} |
+ const dart::String& LibraryUri(intptr_t library_index) { |
+ return translation_helper_.DartSymbol( |
+ translation_helper_.CanonicalNameString( |
+ library_canonical_name(library_index))); |
+ } |
+ |
+ intptr_t library_offset(intptr_t index) { |
+ kernel::Reader reader(program_->kernel_data(), |
+ program_->kernel_data_size()); |
+ reader.set_offset(reader.size() - 4 - |
+ (program_->library_count() - index) * 4); |
+ return reader.ReadUInt32(); |
+ } |
+ |
+ NameIndex library_canonical_name(intptr_t index) { |
+ kernel::Reader reader(program_->kernel_data(), |
+ program_->kernel_data_size()); |
+ reader.set_offset(reader.size() - 4 - |
+ (program_->library_count() - index) * 4); |
+ reader.set_offset(reader.ReadUInt32()); |
+ |
+ // Start reading library. |
+ reader.ReadFlags(); // read flags. |
+ return reader.ReadCanonicalNameReference(); |
+ } |
+ |
uint8_t CharacterAt(StringIndex string_index, intptr_t index); |
private: |