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

Side by Side Diff: runtime/vm/kernel_binary.cc

Issue 2790093002: Hacky streaming of VariableGet (Closed)
Patch Set: Created 3 years, 8 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
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 #if !defined(DART_PRECOMPILED_RUNTIME) 4 #if !defined(DART_PRECOMPILED_RUNTIME)
5 5
6 #include "vm/kernel_binary.h" 6 #include "vm/kernel_binary.h"
7 #include "platform/globals.h" 7 #include "platform/globals.h"
8 #include "vm/flags.h" 8 #include "vm/flags.h"
9 #include "vm/growable_array.h" 9 #include "vm/growable_array.h"
10 #include "vm/kernel.h" 10 #include "vm/kernel.h"
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 reader->offset() - 1; // -1 to include tag byte. 514 reader->offset() - 1; // -1 to include tag byte.
515 return invalid_expression; 515 return invalid_expression;
516 } 516 }
517 517
518 518
519 VariableGet* VariableGet::ReadFrom(Reader* reader) { 519 VariableGet* VariableGet::ReadFrom(Reader* reader) {
520 TRACE_READ_OFFSET(); 520 TRACE_READ_OFFSET();
521 VariableGet* get = new VariableGet(); 521 VariableGet* get = new VariableGet();
522 get->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte. 522 get->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte.
523 get->position_ = reader->ReadPosition(); 523 get->position_ = reader->ReadPosition();
524 get->variable_kernel_offset_ = reader->ReadUInt();
524 get->variable_ = reader->helper()->variables().Lookup(reader->ReadUInt()); 525 get->variable_ = reader->helper()->variables().Lookup(reader->ReadUInt());
526 ASSERT(get->variable_->kernel_offset() == get->variable_kernel_offset_);
525 reader->ReadOptional<DartType>(); // Unused promoted type. 527 reader->ReadOptional<DartType>(); // Unused promoted type.
526 return get; 528 return get;
527 } 529 }
528 530
529 531
530 VariableGet* VariableGet::ReadFrom(Reader* reader, uint8_t payload) { 532 VariableGet* VariableGet::ReadFrom(Reader* reader, uint8_t payload) {
531 TRACE_READ_OFFSET(); 533 TRACE_READ_OFFSET();
532 VariableGet* get = new VariableGet(); 534 VariableGet* get = new VariableGet();
533 get->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte. 535 get->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte.
534 get->position_ = reader->ReadPosition(); 536 get->position_ = reader->ReadPosition();
537 get->variable_kernel_offset_ = reader->ReadUInt();
535 get->variable_ = reader->helper()->variables().Lookup(payload); 538 get->variable_ = reader->helper()->variables().Lookup(payload);
539 ASSERT(get->variable_->kernel_offset() == get->variable_kernel_offset_);
536 return get; 540 return get;
537 } 541 }
538 542
539 543
540 VariableSet* VariableSet::ReadFrom(Reader* reader) { 544 VariableSet* VariableSet::ReadFrom(Reader* reader) {
541 TRACE_READ_OFFSET(); 545 TRACE_READ_OFFSET();
542 VariableSet* set = new VariableSet(); 546 VariableSet* set = new VariableSet();
543 set->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte. 547 set->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte.
544 set->position_ = reader->ReadPosition(); 548 set->position_ = reader->ReadPosition();
545 set->variable_ = reader->helper()->variables().Lookup(reader->ReadUInt()); 549 set->variable_ = reader->helper()->variables().Lookup(reader->ReadUInt());
(...skipping 912 matching lines...) Expand 10 before | Expand all | Expand 10 after
1458 1462
1459 kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer, 1463 kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer,
1460 intptr_t buffer_length) { 1464 intptr_t buffer_length) {
1461 kernel::Reader reader(buffer, buffer_length); 1465 kernel::Reader reader(buffer, buffer_length);
1462 return kernel::Program::ReadFrom(&reader); 1466 return kernel::Program::ReadFrom(&reader);
1463 } 1467 }
1464 1468
1465 1469
1466 } // namespace dart 1470 } // namespace dart
1467 #endif // !defined(DART_PRECOMPILED_RUNTIME) 1471 #endif // !defined(DART_PRECOMPILED_RUNTIME)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698