[heap] Cleanup string factory methods a bit.
This is mostly removing dead code and also dropping MUST_USE_RESULT annotations from methods that cannot throw an exception anyways. R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1370153002 Cr-Commit-Position: refs/heads/master@{#30995}
This commit is contained in:
parent
0a844bc0dc
commit
3bb0174330
@ -578,30 +578,10 @@ MaybeHandle<String> Factory::NewConsString(Handle<String> left,
|
|||||||
NewRawTwoByteString(length).ToHandleChecked(), left, right);
|
NewRawTwoByteString(length).ToHandleChecked(), left, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (is_one_byte || is_one_byte_data_in_two_byte_string)
|
Handle<ConsString> result =
|
||||||
? NewOneByteConsString(length, left, right)
|
(is_one_byte || is_one_byte_data_in_two_byte_string)
|
||||||
: NewTwoByteConsString(length, left, right);
|
? New<ConsString>(cons_one_byte_string_map(), NEW_SPACE)
|
||||||
}
|
: New<ConsString>(cons_string_map(), NEW_SPACE);
|
||||||
|
|
||||||
|
|
||||||
MaybeHandle<String> Factory::NewOneByteConsString(int length,
|
|
||||||
Handle<String> left,
|
|
||||||
Handle<String> right) {
|
|
||||||
return NewRawConsString(cons_one_byte_string_map(), length, left, right);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
MaybeHandle<String> Factory::NewTwoByteConsString(int length,
|
|
||||||
Handle<String> left,
|
|
||||||
Handle<String> right) {
|
|
||||||
return NewRawConsString(cons_string_map(), length, left, right);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
MaybeHandle<String> Factory::NewRawConsString(Handle<Map> map, int length,
|
|
||||||
Handle<String> left,
|
|
||||||
Handle<String> right) {
|
|
||||||
Handle<ConsString> result = New<ConsString>(map, NEW_SPACE);
|
|
||||||
|
|
||||||
DisallowHeapAllocation no_gc;
|
DisallowHeapAllocation no_gc;
|
||||||
WriteBarrierMode mode = result->GetWriteBarrierMode(no_gc);
|
WriteBarrierMode mode = result->GetWriteBarrierMode(no_gc);
|
||||||
|
@ -156,24 +156,21 @@ class Factory final {
|
|||||||
|
|
||||||
// Allocates an internalized string in old space based on the character
|
// Allocates an internalized string in old space based on the character
|
||||||
// stream.
|
// stream.
|
||||||
MUST_USE_RESULT Handle<String> NewInternalizedStringFromUtf8(
|
Handle<String> NewInternalizedStringFromUtf8(Vector<const char> str,
|
||||||
Vector<const char> str,
|
int chars, uint32_t hash_field);
|
||||||
int chars,
|
|
||||||
uint32_t hash_field);
|
|
||||||
|
|
||||||
MUST_USE_RESULT Handle<String> NewOneByteInternalizedString(
|
Handle<String> NewOneByteInternalizedString(Vector<const uint8_t> str,
|
||||||
Vector<const uint8_t> str, uint32_t hash_field);
|
uint32_t hash_field);
|
||||||
|
|
||||||
MUST_USE_RESULT Handle<String> NewOneByteInternalizedSubString(
|
Handle<String> NewOneByteInternalizedSubString(
|
||||||
Handle<SeqOneByteString> string, int offset, int length,
|
Handle<SeqOneByteString> string, int offset, int length,
|
||||||
uint32_t hash_field);
|
uint32_t hash_field);
|
||||||
|
|
||||||
MUST_USE_RESULT Handle<String> NewTwoByteInternalizedString(
|
Handle<String> NewTwoByteInternalizedString(Vector<const uc16> str,
|
||||||
Vector<const uc16> str,
|
uint32_t hash_field);
|
||||||
uint32_t hash_field);
|
|
||||||
|
|
||||||
MUST_USE_RESULT Handle<String> NewInternalizedStringImpl(
|
Handle<String> NewInternalizedStringImpl(Handle<String> string, int chars,
|
||||||
Handle<String> string, int chars, uint32_t hash_field);
|
uint32_t hash_field);
|
||||||
|
|
||||||
// Compute the matching internalized string map for a string if possible.
|
// Compute the matching internalized string map for a string if possible.
|
||||||
// Empty handle is returned if string is in new space or not flattened.
|
// Empty handle is returned if string is in new space or not flattened.
|
||||||
@ -197,14 +194,6 @@ class Factory final {
|
|||||||
// Create a new cons string object which consists of a pair of strings.
|
// Create a new cons string object which consists of a pair of strings.
|
||||||
MUST_USE_RESULT MaybeHandle<String> NewConsString(Handle<String> left,
|
MUST_USE_RESULT MaybeHandle<String> NewConsString(Handle<String> left,
|
||||||
Handle<String> right);
|
Handle<String> right);
|
||||||
MUST_USE_RESULT MaybeHandle<String> NewOneByteConsString(
|
|
||||||
int length, Handle<String> left, Handle<String> right);
|
|
||||||
MUST_USE_RESULT MaybeHandle<String> NewTwoByteConsString(
|
|
||||||
int length, Handle<String> left, Handle<String> right);
|
|
||||||
MUST_USE_RESULT MaybeHandle<String> NewRawConsString(Handle<Map> map,
|
|
||||||
int length,
|
|
||||||
Handle<String> left,
|
|
||||||
Handle<String> right);
|
|
||||||
|
|
||||||
// Create a new string object which holds a proper substring of a string.
|
// Create a new string object which holds a proper substring of a string.
|
||||||
Handle<String> NewProperSubString(Handle<String> str,
|
Handle<String> NewProperSubString(Handle<String> str,
|
||||||
|
@ -1158,28 +1158,6 @@ RUNTIME_FUNCTION(Runtime_NewString) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
RUNTIME_FUNCTION(Runtime_NewConsString) {
|
|
||||||
HandleScope scope(isolate);
|
|
||||||
DCHECK(args.length() == 4);
|
|
||||||
CONVERT_INT32_ARG_CHECKED(length, 0);
|
|
||||||
CONVERT_BOOLEAN_ARG_CHECKED(is_one_byte, 1);
|
|
||||||
CONVERT_ARG_HANDLE_CHECKED(String, left, 2);
|
|
||||||
CONVERT_ARG_HANDLE_CHECKED(String, right, 3);
|
|
||||||
|
|
||||||
Handle<String> result;
|
|
||||||
if (is_one_byte) {
|
|
||||||
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
|
|
||||||
isolate, result,
|
|
||||||
isolate->factory()->NewOneByteConsString(length, left, right));
|
|
||||||
} else {
|
|
||||||
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
|
|
||||||
isolate, result,
|
|
||||||
isolate->factory()->NewTwoByteConsString(length, left, right));
|
|
||||||
}
|
|
||||||
return *result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
RUNTIME_FUNCTION(Runtime_StringEquals) {
|
RUNTIME_FUNCTION(Runtime_StringEquals) {
|
||||||
HandleScope handle_scope(isolate);
|
HandleScope handle_scope(isolate);
|
||||||
DCHECK(args.length() == 2);
|
DCHECK(args.length() == 2);
|
||||||
|
@ -915,7 +915,6 @@ namespace internal {
|
|||||||
F(StringTrim, 3, 1) \
|
F(StringTrim, 3, 1) \
|
||||||
F(TruncateString, 2, 1) \
|
F(TruncateString, 2, 1) \
|
||||||
F(NewString, 2, 1) \
|
F(NewString, 2, 1) \
|
||||||
F(NewConsString, 4, 1) \
|
|
||||||
F(StringEquals, 2, 1) \
|
F(StringEquals, 2, 1) \
|
||||||
F(FlattenString, 1, 1) \
|
F(FlattenString, 1, 1) \
|
||||||
F(StringCharFromCode, 1, 1) \
|
F(StringCharFromCode, 1, 1) \
|
||||||
|
@ -217,17 +217,6 @@ TEST(OneByteSeqStringSetChar) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST(NewConsString) {
|
|
||||||
FunctionTester T(
|
|
||||||
"(function() { "
|
|
||||||
" return %_NewConsString(14, true, 'abcdefghi', 'jklmn');"
|
|
||||||
" })",
|
|
||||||
flags);
|
|
||||||
|
|
||||||
T.CheckCall(T.Val("abcdefghijklmn"));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
TEST(SetValueOf) {
|
TEST(SetValueOf) {
|
||||||
FunctionTester T("(function(a,b) { return %_SetValueOf(a,b); })", flags);
|
FunctionTester T("(function(a,b) { return %_SetValueOf(a,b); })", flags);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user