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

Unified Diff: runtime/vm/parser.h

Issue 12212050: Fix allocation of array tables (use store barrier if needed, store values directly instead of via s… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/parser.h
===================================================================
--- runtime/vm/parser.h (revision 18412)
+++ runtime/vm/parser.h (working copy)
@@ -40,6 +40,7 @@
saved_current_context_var_(NULL),
saved_entry_context_var_(NULL),
expression_temp_var_(NULL),
+ array_literal_var_(NULL),
first_parameter_index_(0),
first_stack_local_index_(0),
num_copied_params_(0),
@@ -102,6 +103,17 @@
}
static LocalVariable* CreateExpressionTempVar(intptr_t token_pos);
+ void set_array_literal_var(LocalVariable* local) {
+ ASSERT((local != NULL) && (array_literal_var_ == NULL));
+ array_literal_var_ = local;
+ }
+ LocalVariable* array_literal_var() const {
+ ASSERT(array_literal_var_ != NULL);
+ return array_literal_var_;
+ }
+
+ static LocalVariable* CreateArrayLiteralVar(intptr_t token_pos);
+
int first_parameter_index() const { return first_parameter_index_; }
int first_stack_local_index() const { return first_stack_local_index_; }
int num_copied_params() const { return num_copied_params_; }
@@ -117,6 +129,9 @@
LocalVariable* saved_current_context_var_;
LocalVariable* saved_entry_context_var_;
LocalVariable* expression_temp_var_;
+ // TODO(hausner): Remove once ArrayNode creation is removed from flow
+ // graph builder.
+ LocalVariable* array_literal_var_;
int first_parameter_index_;
int first_stack_local_index_;
@@ -612,6 +627,7 @@
const Function& constructor,
ArgumentListNode* arguments);
+ LocalVariable* BuildArrayTempLocal(intptr_t token_pos);
const Script& script_;
TokenStream::Iterator tokens_iterator_;

Powered by Google App Engine
This is Rietveld 408576698