Index: runtime/vm/kernel_binary.cc |
diff --git a/runtime/vm/kernel_binary.cc b/runtime/vm/kernel_binary.cc |
index ec71cd838da1887d5715c868118aa40ec8a3ae88..1f56c09be4e28396926cbec1b9673725f9df2d19 100644 |
--- a/runtime/vm/kernel_binary.cc |
+++ b/runtime/vm/kernel_binary.cc |
@@ -3,11 +3,12 @@ |
// BSD-style license that can be found in the LICENSE file. |
#if !defined(DART_PRECOMPILED_RUNTIME) |
+#include <map> |
+#include <vector> |
+ |
#include "platform/globals.h" |
#include "vm/flags.h" |
-#include "vm/growable_array.h" |
#include "vm/kernel.h" |
-#include "vm/kernel_to_il.h" |
#include "vm/os.h" |
#if defined(DEBUG) |
@@ -152,47 +153,47 @@ class BlockStack { |
BlockStack() : current_count_(0) {} |
void EnterScope() { |
- variable_count_.Add(current_count_); |
+ variable_count_.push_back(current_count_); |
current_count_ = 0; |
} |
void LeaveScope() { |
- variables_.TruncateTo(variables_.length() - current_count_); |
- current_count_ = variable_count_[variable_count_.length() - 1]; |
- variable_count_.RemoveLast(); |
+ variables_.resize(variables_.size() - current_count_); |
+ current_count_ = variable_count_[variable_count_.size() - 1]; |
+ variable_count_.pop_back(); |
} |
T* Lookup(int index) { |
- ASSERT(index < variables_.length()); |
+ ASSERT(static_cast<unsigned>(index) < variables_.size()); |
return variables_[index]; |
} |
void Push(T* v) { |
- variables_.Add(v); |
+ variables_.push_back(v); |
current_count_++; |
} |
void Push(List<T>* decl) { |
for (int i = 0; i < decl->length(); i++) { |
- variables_.Add(decl[i]); |
+ variables_.push_back(decl[i]); |
current_count_++; |
} |
} |
void Pop(T* decl) { |
- variables_.RemoveLast(); |
+ variables_.resize(variables_.size() - 1); |
current_count_--; |
} |
void Pop(List<T>* decl) { |
- variables_.TruncateTo(variables_.length() - decl->length()); |
+ variables_.resize(variables_.size() - decl->length()); |
current_count_ -= decl->length(); |
} |
private: |
int current_count_; |
- GrowableArray<T*> variables_; |
- GrowableArray<int> variable_count_; |
+ std::vector<T*> variables_; |
+ std::vector<int> variable_count_; |
}; |
@@ -202,35 +203,29 @@ class BlockMap { |
BlockMap() : current_count_(0), stack_height_(0) {} |
void EnterScope() { |
- variable_count_.Add(current_count_); |
+ variable_count_.push_back(current_count_); |
current_count_ = 0; |
} |
void LeaveScope() { |
stack_height_ -= current_count_; |
- current_count_ = variable_count_[variable_count_.length() - 1]; |
- variable_count_.RemoveLast(); |
+ current_count_ = variable_count_[variable_count_.size() - 1]; |
+ variable_count_.pop_back(); |
} |
int Lookup(T* object) { |
- typename Map<T, int>::Pair* result = variables_.LookupPair(object); |
- ASSERT(result != NULL); |
- if (result == NULL) FATAL("lookup failure"); |
- return RawPointerKeyValueTrait<T, int>::ValueOf(*result); |
+ ASSERT(variables_.find(object) != variables_.end()); |
+ if (variables_.find(object) == variables_.end()) FATAL("lookup failure"); |
+ return variables_[object]; |
} |
void Push(T* v) { |
- ASSERT(variables_.LookupPair(v) == NULL); |
int index = stack_height_++; |
- variables_.Insert(v, index); |
+ variables_[v] = index; |
current_count_++; |
} |
- void Set(T* v, int index) { |
- typename Map<T, int>::Pair* entry = variables_.LookupPair(v); |
- ASSERT(entry != NULL); |
- entry->value = index; |
- } |
+ void Set(T* v, int index) { variables_[v] = index; } |
void Push(List<T>* decl) { |
for (int i = 0; i < decl->length(); i++) { |
@@ -246,8 +241,8 @@ class BlockMap { |
private: |
int current_count_; |
int stack_height_; |
- Map<T, int> variables_; |
- GrowableArray<int> variable_count_; |
+ std::map<T*, int> variables_; |
+ std::vector<int> variable_count_; |
}; |