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

Unified Diff: runtime/vm/regexp_parser.cc

Issue 982873004: Thread/Isolate refactoring: new(Isolate) -> new(Zone) (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 9 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/regexp_parser.cc
===================================================================
--- runtime/vm/regexp_parser.cc (revision 44266)
+++ runtime/vm/regexp_parser.cc (working copy)
@@ -8,13 +8,13 @@
namespace dart {
-#define I isolate()
+#define Z zone()
// Enables possessive quantifier syntax for testing.
static const bool FLAG_regexp_possessive_quantifier = false;
RegExpBuilder::RegExpBuilder()
- : isolate_(Isolate::Current()),
+ : zone_(Thread::Current()->zone()),
pending_empty_(false),
characters_(NULL),
terms_(),
@@ -29,7 +29,7 @@
void RegExpBuilder::FlushCharacters() {
pending_empty_ = false;
if (characters_ != NULL) {
- RegExpTree* atom = new(I) RegExpAtom(characters_);
+ RegExpTree* atom = new(Z) RegExpAtom(characters_);
characters_ = NULL;
text_.Add(atom);
LAST(ADD_ATOM);
@@ -45,7 +45,7 @@
} else if (num_text == 1) {
terms_.Add(text_.Last());
} else {
- RegExpText* text = new(I) RegExpText();
+ RegExpText* text = new(Z) RegExpText();
for (intptr_t i = 0; i < num_text; i++)
text_[i]->AppendToText(text);
terms_.Add(text);
@@ -57,7 +57,7 @@
void RegExpBuilder::AddCharacter(uint16_t c) {
pending_empty_ = false;
if (characters_ == NULL) {
- characters_ = new(I) ZoneGrowableArray<uint16_t>(4);
+ characters_ = new(Z) ZoneGrowableArray<uint16_t>(4);
}
characters_->Add(c);
LAST(ADD_CHAR);
@@ -107,11 +107,11 @@
alternative = terms_.Last();
} else {
ZoneGrowableArray<RegExpTree*>* terms =
- new(I) ZoneGrowableArray<RegExpTree*>();
+ new(Z) ZoneGrowableArray<RegExpTree*>();
for (intptr_t i = 0; i < terms_.length(); i++) {
terms->Add(terms_[i]);
}
- alternative = new(I) RegExpAlternative(terms);
+ alternative = new(Z) RegExpAlternative(terms);
}
alternatives_.Add(alternative);
terms_.Clear();
@@ -129,11 +129,11 @@
return alternatives_.Last();
}
ZoneGrowableArray<RegExpTree*>* alternatives =
- new(I) ZoneGrowableArray<RegExpTree*>();
+ new(Z) ZoneGrowableArray<RegExpTree*>();
for (intptr_t i = 0; i < alternatives_.length(); i++) {
alternatives->Add(alternatives_[i]);
}
- return new(I) RegExpDisjunction(alternatives);
+ return new(Z) RegExpDisjunction(alternatives);
}
@@ -151,22 +151,22 @@
// Last atom was character.
ZoneGrowableArray<uint16_t> *char_vector =
- new(I) ZoneGrowableArray<uint16_t>();
+ new(Z) ZoneGrowableArray<uint16_t>();
char_vector->AddArray(*characters_);
intptr_t num_chars = char_vector->length();
if (num_chars > 1) {
ZoneGrowableArray<uint16_t> *prefix =
- new(I) ZoneGrowableArray<uint16_t>();
+ new(Z) ZoneGrowableArray<uint16_t>();
for (intptr_t i = 0; i < num_chars - 1; i++) {
prefix->Add(char_vector->At(i));
}
- text_.Add(new(I) RegExpAtom(prefix));
- ZoneGrowableArray<uint16_t> *tail = new(I) ZoneGrowableArray<uint16_t>();
+ text_.Add(new(Z) RegExpAtom(prefix));
+ ZoneGrowableArray<uint16_t> *tail = new(Z) ZoneGrowableArray<uint16_t>();
tail->Add(char_vector->At(num_chars - 1));
char_vector = tail;
}
characters_ = NULL;
- atom = new(I) RegExpAtom(char_vector);
+ atom = new(Z) RegExpAtom(char_vector);
FlushText();
} else if (text_.length() > 0) {
DEBUG_ASSERT(last_added_ == ADD_ATOM);
@@ -189,7 +189,7 @@
UNREACHABLE();
return;
}
- terms_.Add(new(I) RegExpQuantifier(min, max, quantifier_type, atom));
+ terms_.Add(new(Z) RegExpQuantifier(min, max, quantifier_type, atom));
LAST(ADD_TERM);
}
@@ -199,7 +199,7 @@
RegExpParser::RegExpParser(const String& in,
String* error,
bool multiline)
- : isolate_(Isolate::Current()),
+ : zone_(Thread::Current()->zone()),
error_(error),
captures_(NULL),
in_(in),
@@ -217,13 +217,13 @@
bool RegExpParser::ParseFunction(ParsedFunction *parsed_function) {
- Isolate* isolate = parsed_function->isolate();
+ Zone* zone = parsed_function->zone();
JSRegExp& regexp = JSRegExp::Handle(parsed_function->function().regexp());
const String& pattern = String::Handle(regexp.pattern());
const bool multiline = regexp.is_multi_line();
- RegExpCompileData* compile_data = new(isolate) RegExpCompileData();
+ RegExpCompileData* compile_data = new(zone) RegExpCompileData();
if (!RegExpParser::ParseRegExp(pattern, multiline, compile_data)) {
// Parsing failures are handled in the JSRegExp factory constructor.
UNREACHABLE();
@@ -319,7 +319,7 @@
// Atom Quantifier
RegExpTree* RegExpParser::ParseDisjunction() {
// Used to store current state while parsing subexpressions.
- RegExpParserState initial_state(NULL, INITIAL, 0, I);
+ RegExpParserState initial_state(NULL, INITIAL, 0, Z);
RegExpParserState* stored_state = &initial_state;
// Cache the builder in a local variable for quick access.
RegExpBuilder* builder = initial_state.builder();
@@ -357,7 +357,7 @@
// Build result of subexpression.
if (group_type == CAPTURE) {
- RegExpCapture* capture = new(I) RegExpCapture(body, capture_index);
+ RegExpCapture* capture = new(Z) RegExpCapture(body, capture_index);
(*captures_)[capture_index - 1] = capture;
body = capture;
} else if (group_type != GROUPING) {
@@ -364,7 +364,7 @@
ASSERT(group_type == POSITIVE_LOOKAHEAD ||
group_type == NEGATIVE_LOOKAHEAD);
bool is_positive = (group_type == POSITIVE_LOOKAHEAD);
- body = new(I) RegExpLookahead(body,
+ body = new(Z) RegExpLookahead(body,
is_positive,
end_capture_index - capture_index,
capture_index);
@@ -388,10 +388,10 @@
Advance();
if (multiline_) {
builder->AddAssertion(
- new(I) RegExpAssertion(RegExpAssertion::START_OF_LINE));
+ new(Z) RegExpAssertion(RegExpAssertion::START_OF_LINE));
} else {
builder->AddAssertion(
- new(I) RegExpAssertion(RegExpAssertion::START_OF_INPUT));
+ new(Z) RegExpAssertion(RegExpAssertion::START_OF_INPUT));
set_contains_anchor();
}
continue;
@@ -445,7 +445,7 @@
}
// Store current state and begin new disjunction parsing.
stored_state = new RegExpParserState(stored_state, subexpr_type,
- captures_started(), I);
+ captures_started(), Z);
builder = stored_state->builder();
continue;
}
@@ -996,7 +996,7 @@
Advance();
}
ZoneGrowableArray<CharacterRange>* ranges =
- new(I) ZoneGrowableArray<CharacterRange>(2);
+ new(Z) ZoneGrowableArray<CharacterRange>(2);
while (has_more() && current() != ']') {
uint16_t char_class = kNoCharClass;
CharacterRange first = ParseClassAtom(&char_class);
@@ -1038,7 +1038,7 @@
ranges->Add(CharacterRange::Everything());
is_negated = !is_negated;
}
- return new(I) RegExpCharacterClass(ranges, is_negated);
+ return new(Z) RegExpCharacterClass(ranges, is_negated);
}

Powered by Google App Engine
This is Rietveld 408576698