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

Unified Diff: runtime/vm/parser.cc

Issue 1309523002: GrowableObjectArray -> GrowableArray for parsing type arguments (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/parser.cc
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
index c349982045aaaa2bf5869feaf126512557e1da73..79a786af2b014e651eff49a4774195cbf8d05521 100644
--- a/runtime/vm/parser.cc
+++ b/runtime/vm/parser.cc
@@ -116,13 +116,12 @@ class BoolScope : public ValueObject {
};
-static RawTypeArguments* NewTypeArguments(const GrowableObjectArray& objs) {
+static RawTypeArguments* NewTypeArguments(
+ const GrowableArray<AbstractType*>& objs) {
const TypeArguments& a =
- TypeArguments::Handle(TypeArguments::New(objs.Length()));
- AbstractType& type = AbstractType::Handle();
- for (int i = 0; i < objs.Length(); i++) {
- type ^= objs.At(i);
- a.SetTypeAt(i, type);
+ TypeArguments::Handle(TypeArguments::New(objs.length()));
+ for (int i = 0; i < objs.length(); i++) {
+ a.SetTypeAt(i, *objs.At(i));
}
// Cannot canonicalize TypeArgument yet as its types may not have been
// finalized yet.
@@ -5211,8 +5210,7 @@ void Parser::SkipType(bool allow_void) {
void Parser::ParseTypeParameters(const Class& cls) {
TRACE_PARSER("ParseTypeParameters");
if (CurrentToken() == Token::kLT) {
- const GrowableObjectArray& type_parameters_array =
- GrowableObjectArray::Handle(Z, GrowableObjectArray::New());
+ GrowableArray<AbstractType*> type_parameters_array;
koda 2015/08/21 00:22:02 Consider passing in Z and a reasonable initial cap
srdjan 2015/08/21 16:40:34 Thanks, will add it in the next CL.
intptr_t index = 0;
TypeParameter& type_parameter = TypeParameter::Handle(Z);
TypeParameter& existing_type_parameter = TypeParameter::Handle(Z);
@@ -5228,7 +5226,7 @@ void Parser::ParseTypeParameters(const Class& cls) {
*ExpectUserDefinedTypeIdentifier("type parameter expected");
// Check for duplicate type parameters.
for (intptr_t i = 0; i < index; i++) {
- existing_type_parameter ^= type_parameters_array.At(i);
+ existing_type_parameter ^= type_parameters_array.At(i)->raw();
existing_type_parameter_name = existing_type_parameter.name();
if (existing_type_parameter_name.Equals(type_parameter_name)) {
ReportError(type_parameter_pos, "duplicate type parameter '%s'",
@@ -5250,7 +5248,8 @@ void Parser::ParseTypeParameters(const Class& cls) {
type_parameter_name,
type_parameter_bound,
declaration_pos);
- type_parameters_array.Add(type_parameter);
+ type_parameters_array.Add(
+ &AbstractType::ZoneHandle(Z, type_parameter.raw()));
if (metadata_pos >= 0) {
library_.AddTypeParameterMetadata(type_parameter, metadata_pos);
}
@@ -5285,8 +5284,7 @@ RawTypeArguments* Parser::ParseTypeArguments(
ClassFinalizer::FinalizationKind finalization) {
TRACE_PARSER("ParseTypeArguments");
if (CurrentToken() == Token::kLT) {
- const GrowableObjectArray& types =
- GrowableObjectArray::Handle(Z, GrowableObjectArray::New());
+ GrowableArray<AbstractType*> types;
AbstractType& type = AbstractType::Handle(Z);
do {
ConsumeToken();
@@ -5295,7 +5293,7 @@ RawTypeArguments* Parser::ParseTypeArguments(
if (type.IsMalformed()) {
type = Type::DynamicType();
}
- types.Add(type);
+ types.Add(&AbstractType::ZoneHandle(Z, type.raw()));
} while (CurrentToken() == Token::kCOMMA);
Token::Kind token = CurrentToken();
if ((token == Token::kGT) || (token == Token::kSHR)) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698