Index: runtime/vm/kernel_binary_flowgraph.cc |
diff --git a/runtime/vm/kernel_binary_flowgraph.cc b/runtime/vm/kernel_binary_flowgraph.cc |
index cd7f16b03d4d5893e29192695dfb7ff4959e377a..c23d8be0dc83815deabec22729dc97e26172ebdb 100644 |
--- a/runtime/vm/kernel_binary_flowgraph.cc |
+++ b/runtime/vm/kernel_binary_flowgraph.cc |
@@ -93,9 +93,10 @@ void StreamingConstantEvaluator::EvaluateStaticGet() { |
} |
} |
+ |
void StreamingConstantEvaluator::EvaluateSymbolLiteral() { |
int str_index = builder_->ReadUInt(); |
- const dart::String& symbol_value = builder_->DartSymbol(str_index); |
+ const dart::String& symbol_value = H.DartSymbol(str_index); |
const dart::Class& symbol_class = |
dart::Class::ZoneHandle(Z, I->object_store()->symbol_class()); |
@@ -107,12 +108,14 @@ void StreamingConstantEvaluator::EvaluateSymbolLiteral() { |
symbol_class, TypeArguments::Handle(Z), symbol_constructor, symbol_value); |
} |
+ |
void StreamingConstantEvaluator::EvaluateDoubleLiteral() { |
int str_index = builder_->ReadUInt(); |
- result_ = dart::Double::New(builder_->DartString(str_index), Heap::kOld); |
+ result_ = dart::Double::New(H.DartString(str_index), Heap::kOld); |
result_ = H.Canonicalize(result_); |
} |
+ |
RawObject* StreamingConstantEvaluator::EvaluateConstConstructorCall( |
const dart::Class& type_class, |
const TypeArguments& type_arguments, |
@@ -308,26 +311,6 @@ Fragment StreamingFlowGraphBuilder::BuildAt(intptr_t kernel_offset) { |
} |
-intptr_t StreamingFlowGraphBuilder::GetStringOffset(intptr_t index) { |
- if (string_offsets_ == NULL) { |
- intptr_t saved_offset = ReaderOffset(); |
- reader_->set_offset(4); // Skip kMagicProgramFile to the string table. |
- string_offset_count_ = ReadListLength() + 1; |
- string_offsets_ = new intptr_t[string_offset_count_]; |
- |
- // Build a table of the 0-based string start and end offsets. |
- string_offsets_[0] = 0; |
- for (intptr_t i = 1; i < string_offset_count_; ++i) { |
- string_offsets_[i] = ReadUInt(); |
- } |
- // Mark the start of the string data to use for decoding strings. |
- reader_->MarkStringDataOffset(); |
- SetOffset(saved_offset); |
- } |
- return string_offsets_[index]; |
-} |
- |
- |
CanonicalName* StreamingFlowGraphBuilder::GetCanonicalName(intptr_t index) { |
if (index == 0) return NULL; |
--index; |
@@ -395,8 +378,7 @@ CanonicalName* StreamingFlowGraphBuilder::GetCanonicalName(intptr_t index) { |
} |
ASSERT(parent != NULL); |
intptr_t name_index = ReadUInt(); |
- String* name = KernelString(name_index); |
- CanonicalName* canonical_name = parent->AddChild(name); |
+ CanonicalName* canonical_name = parent->AddChild(name_index); |
canonical_names_[canonical_names_entries_read_] = canonical_name; |
} |
@@ -457,29 +439,6 @@ ParsedFunction* StreamingFlowGraphBuilder::parsed_function() { |
} |
-dart::String& StreamingFlowGraphBuilder::DartSymbol(intptr_t index) { |
- intptr_t start = GetStringOffset(index); |
- intptr_t end = GetStringOffset(index + 1); |
- return H.DartSymbol(reader_->buffer() + reader_->string_data_offset() + start, |
- end - start); |
-} |
- |
- |
-dart::String& StreamingFlowGraphBuilder::DartString(intptr_t index) { |
- intptr_t start = GetStringOffset(index); |
- intptr_t end = GetStringOffset(index + 1); |
- return H.DartString(reader_->buffer() + reader_->string_data_offset() + start, |
- end - start); |
-} |
- |
- |
-String* StreamingFlowGraphBuilder::KernelString(intptr_t index) { |
- intptr_t start = GetStringOffset(index); |
- intptr_t end = GetStringOffset(index + 1); |
- return new String(start, end - start); |
-} |
- |
- |
Fragment StreamingFlowGraphBuilder::DebugStepCheck(TokenPosition position) { |
return flow_graph_builder_->DebugStepCheck(position); |
} |
@@ -603,14 +562,14 @@ Fragment StreamingFlowGraphBuilder::BuildRethrow() { |
Fragment StreamingFlowGraphBuilder::BuildBigIntLiteral() { |
- const dart::String& value = DartString(ReadUInt()); |
+ const dart::String& value = H.DartString(ReadUInt()); |
return Constant(Integer::ZoneHandle(Z, Integer::New(value, Heap::kOld))); |
} |
Fragment StreamingFlowGraphBuilder::BuildStringLiteral() { |
intptr_t str_index = ReadUInt(); |
- return Constant(DartSymbol(str_index)); |
+ return Constant(H.DartSymbol(str_index)); |
} |