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

Unified Diff: runtime/vm/scanner.cc

Issue 1870343002: - Refactor Symbol allocation to expect a thread parameter. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Address review feedback. Created 4 years, 8 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 | « runtime/vm/scanner.h ('k') | runtime/vm/scopes_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/scanner.cc
diff --git a/runtime/vm/scanner.cc b/runtime/vm/scanner.cc
index a0404760773732ec946f5f63462ccacfc2592125..9cbe84a220997bba73911bebd9b281cffb478a72 100644
--- a/runtime/vm/scanner.cc
+++ b/runtime/vm/scanner.cc
@@ -18,8 +18,9 @@ namespace dart {
DEFINE_FLAG(bool, print_tokens, false, "Print scanned tokens.");
-// Quick access to the locally defined zone() method.
+// Quick access to the locally defined zone() and thread() methods.
#define Z (zone())
+#define T (thread())
class ScanContext : public ZoneAllocated {
@@ -83,7 +84,8 @@ Scanner::Scanner(const String& src, const String& private_key)
saved_context_(NULL),
private_key_(String::ZoneHandle(private_key.raw())),
char_at_func_(src.CharAtFunc()),
- zone_(Thread::Current()->zone()) {
+ thread_(Thread::Current()),
+ zone_(thread_->zone()) {
Reset();
}
@@ -93,7 +95,7 @@ Scanner::~Scanner() {}
void Scanner::ErrorMsg(const char* msg) {
current_token_.kind = Token::kERROR;
- current_token_.literal = &String::ZoneHandle(Z, Symbols::New(msg));
+ current_token_.literal = &String::ZoneHandle(Z, Symbols::New(T, msg));
current_token_.position = c0_pos_;
token_start_ = lookahead_pos_;
current_token_.offset = lookahead_pos_;
@@ -328,10 +330,10 @@ void Scanner::ScanIdentChars(bool allow_dollar) {
// We did not read a keyword.
current_token_.kind = Token::kIDENT;
String& literal =
- String::ZoneHandle(Z, Symbols::New(source_, ident_pos, ident_length));
+ String::ZoneHandle(Z, Symbols::New(T, source_, ident_pos, ident_length));
if (ident_char0 == Library::kPrivateIdentifierStart) {
// Private identifiers are mangled on a per library basis.
- literal = Symbols::FromConcat(literal, private_key_);
+ literal = Symbols::FromConcat(T, literal, private_key_);
}
current_token_.literal = &literal;
}
@@ -386,7 +388,7 @@ void Scanner::ScanNumber(bool dec_point_seen) {
if (current_token_.kind != Token::kILLEGAL) {
intptr_t len = lookahead_pos_ - token_start_;
const String& str =
- String::ZoneHandle(Z, Symbols::New(source_, token_start_, len));
+ String::ZoneHandle(Z, Symbols::New(T, source_, token_start_, len));
current_token_.literal = &str;
}
}
@@ -540,7 +542,7 @@ void Scanner::ScanLiteralStringChars(bool is_raw, bool remove_whitespace) {
ASSERT(string_chars.data() != NULL);
// Strings are canonicalized: Allocate a symbol.
current_token_.literal = &String::ZoneHandle(Z,
- Symbols::FromUTF32(string_chars.data(), string_chars.length()));
+ Symbols::FromUTF32(T, string_chars.data(), string_chars.length()));
// Preserve error tokens.
if (current_token_.kind != Token::kERROR) {
current_token_.kind = Token::kSTRING;
@@ -563,7 +565,8 @@ void Scanner::ScanLiteralStringChars(bool is_raw, bool remove_whitespace) {
ASSERT(string_chars.data() != NULL);
// Strings are canonicalized: Allocate a symbol.
current_token_.literal = &String::ZoneHandle(Z,
- Symbols::FromUTF32(string_chars.data(), string_chars.length()));
+ Symbols::FromUTF32(T,
+ string_chars.data(), string_chars.length()));
}
EndStringLiteral();
return;
@@ -970,7 +973,7 @@ void Scanner::InitOnce() {
keywords_[i].kind = token;
keywords_[i].keyword_chars = Token::Str(token);
keywords_[i].keyword_len = strlen(Token::Str(token));
- keywords_[i].keyword_symbol = &Symbols::Keyword(token);
+ keywords_[i].keyword_symbol = &Symbols::Token(token);
int ch = keywords_[i].keyword_chars[0] - 'a';
if (keywords_char_offset_[ch] == Token::kNumKeywords) {
« no previous file with comments | « runtime/vm/scanner.h ('k') | runtime/vm/scopes_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698