Index: src/ast-value-factory.cc |
diff --git a/src/ast-value-factory.cc b/src/ast-value-factory.cc |
index 7aa9b6c59ebb2e5a462dd32d4c11e58c8585f3c2..895ce39f652845fa83674d61ec98b0c9b8f1b5e1 100644 |
--- a/src/ast-value-factory.cc |
+++ b/src/ast-value-factory.cc |
@@ -212,7 +212,7 @@ void AstValue::Internalize(Isolate* isolate) { |
} |
-AstRawString* AstValueFactory::GetOneByteStringInternal( |
+const AstRawString* AstValueFactory::GetOneByteString( |
Vector<const uint8_t> literal) { |
uint32_t hash = StringHasher::HashSequentialString<uint8_t>( |
literal.start(), literal.length(), hash_seed_); |
@@ -220,7 +220,7 @@ AstRawString* AstValueFactory::GetOneByteStringInternal( |
} |
-AstRawString* AstValueFactory::GetTwoByteStringInternal( |
+const AstRawString* AstValueFactory::GetTwoByteString( |
Vector<const uint16_t> literal) { |
uint32_t hash = StringHasher::HashSequentialString<uint16_t>( |
literal.start(), literal.length(), hash_seed_); |
@@ -229,22 +229,13 @@ AstRawString* AstValueFactory::GetTwoByteStringInternal( |
const AstRawString* AstValueFactory::GetString(Handle<String> literal) { |
- // For the FlatContent to stay valid, we shouldn't do any heap |
- // allocation. Make sure we won't try to internalize the string in GetString. |
- AstRawString* result = NULL; |
- Isolate* saved_isolate = isolate_; |
- isolate_ = NULL; |
DisallowHeapAllocation no_gc; |
String::FlatContent content = literal->GetFlatContent(); |
if (content.IsOneByte()) { |
- result = GetOneByteStringInternal(content.ToOneByteVector()); |
- } else { |
- DCHECK(content.IsTwoByte()); |
- result = GetTwoByteStringInternal(content.ToUC16Vector()); |
+ return GetOneByteString(content.ToOneByteVector()); |
} |
- isolate_ = saved_isolate; |
- result->string_ = literal; |
- return result; |
+ DCHECK(content.IsTwoByte()); |
+ return GetTwoByteString(content.ToUC16Vector()); |
} |
@@ -357,8 +348,8 @@ const AstValue* AstValueFactory::NewTheHole() { |
#undef GENERATE_VALUE_GETTER |
-AstRawString* AstValueFactory::GetString(uint32_t hash, bool is_one_byte, |
- Vector<const byte> literal_bytes) { |
+const AstRawString* AstValueFactory::GetString( |
+ uint32_t hash, bool is_one_byte, Vector<const byte> literal_bytes) { |
// literal_bytes here points to whatever the user passed, and this is OK |
// because we use vector_compare (which checks the contents) to compare |
// against the AstRawStrings which are in the string_table_. We should not |