Commit 5c5985b8 authored by jgruber's avatar jgruber Committed by Commit bot

ZoneVector overload of Factory::NewStringFromTwoByte

The Vector type is deprecated, and new code should use ZoneVector
instead. This new overload of NewStringFromTwoByte will be used in an
upcoming regexp CL.

R=bmeurer@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2065053002
Cr-Commit-Position: refs/heads/master@{#36985}
parent ed0039a7
...@@ -292,12 +292,10 @@ MaybeHandle<String> Factory::NewStringFromUtf8(Vector<const char> string, ...@@ -292,12 +292,10 @@ MaybeHandle<String> Factory::NewStringFromUtf8(Vector<const char> string,
return result; return result;
} }
MaybeHandle<String> Factory::NewStringFromTwoByte(const uc16* string,
MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string, int length,
PretenureFlag pretenure) { PretenureFlag pretenure) {
int length = string.length(); if (String::IsOneByte(string, length)) {
const uc16* start = string.start();
if (String::IsOneByte(start, length)) {
if (length == 1) return LookupSingleCharacterStringFromCode(string[0]); if (length == 1) return LookupSingleCharacterStringFromCode(string[0]);
Handle<SeqOneByteString> result; Handle<SeqOneByteString> result;
ASSIGN_RETURN_ON_EXCEPTION( ASSIGN_RETURN_ON_EXCEPTION(
...@@ -305,7 +303,7 @@ MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string, ...@@ -305,7 +303,7 @@ MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string,
result, result,
NewRawOneByteString(length, pretenure), NewRawOneByteString(length, pretenure),
String); String);
CopyChars(result->GetChars(), start, length); CopyChars(result->GetChars(), string, length);
return result; return result;
} else { } else {
Handle<SeqTwoByteString> result; Handle<SeqTwoByteString> result;
...@@ -314,11 +312,21 @@ MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string, ...@@ -314,11 +312,21 @@ MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string,
result, result,
NewRawTwoByteString(length, pretenure), NewRawTwoByteString(length, pretenure),
String); String);
CopyChars(result->GetChars(), start, length); CopyChars(result->GetChars(), string, length);
return result; return result;
} }
} }
MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string,
PretenureFlag pretenure) {
return NewStringFromTwoByte(string.start(), string.length(), pretenure);
}
MaybeHandle<String> Factory::NewStringFromTwoByte(
const ZoneVector<uc16>* string, PretenureFlag pretenure) {
return NewStringFromTwoByte(string->data(), static_cast<int>(string->size()),
pretenure);
}
Handle<String> Factory::NewInternalizedStringFromUtf8(Vector<const char> str, Handle<String> Factory::NewInternalizedStringFromUtf8(Vector<const char> str,
int chars, int chars,
......
...@@ -163,6 +163,9 @@ class Factory final { ...@@ -163,6 +163,9 @@ class Factory final {
Vector<const uc16> str, Vector<const uc16> str,
PretenureFlag pretenure = NOT_TENURED); PretenureFlag pretenure = NOT_TENURED);
MUST_USE_RESULT MaybeHandle<String> NewStringFromTwoByte(
const ZoneVector<uc16>* str, PretenureFlag pretenure = NOT_TENURED);
// Allocates an internalized string in old space based on the character // Allocates an internalized string in old space based on the character
// stream. // stream.
Handle<String> NewInternalizedStringFromUtf8(Vector<const char> str, Handle<String> NewInternalizedStringFromUtf8(Vector<const char> str,
...@@ -700,6 +703,9 @@ class Factory final { ...@@ -700,6 +703,9 @@ class Factory final {
AllocationSpace space, AllocationSpace space,
Handle<AllocationSite> allocation_site); Handle<AllocationSite> allocation_site);
MaybeHandle<String> NewStringFromTwoByte(const uc16* string, int length,
PretenureFlag pretenure);
// Creates a code object that is not yet fully initialized yet. // Creates a code object that is not yet fully initialized yet.
inline Handle<Code> NewCodeRaw(int object_size, bool immovable); inline Handle<Code> NewCodeRaw(int object_size, bool immovable);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment