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,
return result;
}
MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string,
MaybeHandle<String> Factory::NewStringFromTwoByte(const uc16* string,
int length,
PretenureFlag pretenure) {
int length = string.length();
const uc16* start = string.start();
if (String::IsOneByte(start, length)) {
if (String::IsOneByte(string, length)) {
if (length == 1) return LookupSingleCharacterStringFromCode(string[0]);
Handle<SeqOneByteString> result;
ASSIGN_RETURN_ON_EXCEPTION(
......@@ -305,7 +303,7 @@ MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string,
result,
NewRawOneByteString(length, pretenure),
String);
CopyChars(result->GetChars(), start, length);
CopyChars(result->GetChars(), string, length);
return result;
} else {
Handle<SeqTwoByteString> result;
......@@ -314,11 +312,21 @@ MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string,
result,
NewRawTwoByteString(length, pretenure),
String);
CopyChars(result->GetChars(), start, length);
CopyChars(result->GetChars(), string, length);
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,
int chars,
......
......@@ -163,6 +163,9 @@ class Factory final {
Vector<const uc16> str,
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
// stream.
Handle<String> NewInternalizedStringFromUtf8(Vector<const char> str,
......@@ -700,6 +703,9 @@ class Factory final {
AllocationSpace space,
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.
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