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

Side by Side Diff: runtime/vm/kernel.h

Issue 2587673004: Include source in kernel. (Closed)
Patch Set: Fixed some rebase errors 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 unified diff | Download patch
« no previous file with comments | « pkg/kernel/lib/binary/ast_to_binary.dart ('k') | runtime/vm/kernel_binary.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef RUNTIME_VM_KERNEL_H_ 5 #ifndef RUNTIME_VM_KERNEL_H_
6 #define RUNTIME_VM_KERNEL_H_ 6 #define RUNTIME_VM_KERNEL_H_
7 7
8 #if !defined(DART_PRECOMPILED_RUNTIME) 8 #if !defined(DART_PRECOMPILED_RUNTIME)
9 #include "platform/assert.h" 9 #include "platform/assert.h"
10 #include "vm/allocation.h" 10 #include "vm/allocation.h"
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 StringTable() {} 304 StringTable() {}
305 305
306 friend class Program; 306 friend class Program;
307 307
308 List<String> strings_; 308 List<String> strings_;
309 309
310 DISALLOW_COPY_AND_ASSIGN(StringTable); 310 DISALLOW_COPY_AND_ASSIGN(StringTable);
311 }; 311 };
312 312
313 313
314 class LineStartingTable { 314 class SourceTable {
315 public: 315 public:
316 void ReadFrom(Reader* reader); 316 void ReadFrom(Reader* reader);
317 void WriteTo(Writer* writer); 317 void WriteTo(Writer* writer);
318 ~LineStartingTable() { 318 ~SourceTable() {
319 for (intptr_t i = 0; i < size_; ++i) { 319 for (intptr_t i = 0; i < size_; ++i) {
320 delete[] values_[i]; 320 delete source_code_[i];
321 delete[] line_starts_[i];
321 } 322 }
322 delete[] values_; 323 delete[] source_code_;
324 delete[] line_starts_;
325 delete[] line_count_;
323 } 326 }
324 327
325 intptr_t size() { return size_; } 328 intptr_t size() { return size_; }
326 intptr_t* valuesFor(int i) { return values_[i]; } 329 String* SourceFor(intptr_t i) { return source_code_[i]; }
330 intptr_t* LineStartsFor(intptr_t i) { return line_starts_[i]; }
331 intptr_t LineCountFor(intptr_t i) { return line_count_[i]; }
327 332
328 private: 333 private:
329 LineStartingTable() : values_(NULL), size_(0) {} 334 SourceTable()
335 : source_code_(NULL), line_starts_(NULL), line_count_(NULL), size_(0) {}
330 336
331 friend class Program; 337 friend class Program;
332 338
333 intptr_t** values_; 339 String** source_code_;
340 intptr_t** line_starts_;
341 intptr_t* line_count_;
334 intptr_t size_; 342 intptr_t size_;
335 343
336 DISALLOW_COPY_AND_ASSIGN(LineStartingTable); 344 DISALLOW_COPY_AND_ASSIGN(SourceTable);
337 }; 345 };
338 346
339 // Forward declare all classes. 347 // Forward declare all classes.
340 #define DO(name) class name; 348 #define DO(name) class name;
341 KERNEL_ALL_NODES_DO(DO) 349 KERNEL_ALL_NODES_DO(DO)
342 KERNEL_VISITORS_DO(DO) 350 KERNEL_VISITORS_DO(DO)
343 #undef DO 351 #undef DO
344 352
345 353
346 #define DEFINE_CASTING_OPERATIONS(klass) \ 354 #define DEFINE_CASTING_OPERATIONS(klass) \
(...skipping 2444 matching lines...) Expand 10 before | Expand all | Expand 10 after
2791 2799
2792 virtual ~Program(); 2800 virtual ~Program();
2793 2801
2794 DEFINE_CASTING_OPERATIONS(Program); 2802 DEFINE_CASTING_OPERATIONS(Program);
2795 2803
2796 virtual void AcceptTreeVisitor(TreeVisitor* visitor); 2804 virtual void AcceptTreeVisitor(TreeVisitor* visitor);
2797 virtual void VisitChildren(Visitor* visitor); 2805 virtual void VisitChildren(Visitor* visitor);
2798 2806
2799 StringTable& string_table() { return string_table_; } 2807 StringTable& string_table() { return string_table_; }
2800 StringTable& source_uri_table() { return source_uri_table_; } 2808 StringTable& source_uri_table() { return source_uri_table_; }
2801 LineStartingTable& line_starting_table() { return line_starting_table_; } 2809 SourceTable& source_table() { return source_table_; }
2802 List<Library>& libraries() { return libraries_; } 2810 List<Library>& libraries() { return libraries_; }
2803 Procedure* main_method() { return main_method_; } 2811 Procedure* main_method() { return main_method_; }
2804 2812
2805 private: 2813 private:
2806 Program() {} 2814 Program() {}
2807 2815
2808 List<Library> libraries_; 2816 List<Library> libraries_;
2809 Ref<Procedure> main_method_; 2817 Ref<Procedure> main_method_;
2810 StringTable string_table_; 2818 StringTable string_table_;
2811 StringTable source_uri_table_; 2819 StringTable source_uri_table_;
2812 LineStartingTable line_starting_table_; 2820 SourceTable source_table_;
2813 2821
2814 DISALLOW_COPY_AND_ASSIGN(Program); 2822 DISALLOW_COPY_AND_ASSIGN(Program);
2815 }; 2823 };
2816 2824
2817 2825
2818 class Reference : public AllStatic { 2826 class Reference : public AllStatic {
2819 public: 2827 public:
2820 static Member* ReadMemberFrom(Reader* reader, bool allow_null = false); 2828 static Member* ReadMemberFrom(Reader* reader, bool allow_null = false);
2821 static void WriteMemberTo(Writer* writer, 2829 static void WriteMemberTo(Writer* writer,
2822 Member* member, 2830 Member* member,
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
3259 }; 3267 };
3260 3268
3261 3269
3262 void WritePrecompiledKernel(ByteWriter* out, kernel::Program* program); 3270 void WritePrecompiledKernel(ByteWriter* out, kernel::Program* program);
3263 3271
3264 3272
3265 } // namespace dart 3273 } // namespace dart
3266 3274
3267 #endif // !defined(DART_PRECOMPILED_RUNTIME) 3275 #endif // !defined(DART_PRECOMPILED_RUNTIME)
3268 #endif // RUNTIME_VM_KERNEL_H_ 3276 #endif // RUNTIME_VM_KERNEL_H_
OLDNEW
« no previous file with comments | « pkg/kernel/lib/binary/ast_to_binary.dart ('k') | runtime/vm/kernel_binary.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698