Reviewers: Søren Gjesse,
Description:
Cleanup of return types and names in factory.
Please review this at http://codereview.chromium.org/7240025/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/factory.h
M src/factory.cc
M src/json-parser.h
M src/runtime.cc
Index: src/factory.cc
diff --git a/src/factory.cc b/src/factory.cc
index
f654b5aa83b4cec5967879ab60f390da47254236..405cebe45fa9aed5ec3c7d386d6f33ac54531fd5
100644
--- a/src/factory.cc
+++ b/src/factory.cc
@@ -179,21 +179,21 @@ Handle<String>
Factory::NewStringFromTwoByte(Vector<const uc16> string,
}
-Handle<String> Factory::NewRawAsciiString(int length,
- PretenureFlag pretenure) {
+Handle<SeqAsciiString> Factory::NewRawAsciiString(int length,
+ PretenureFlag pretenure)
{
CALL_HEAP_FUNCTION(
isolate(),
isolate()->heap()->AllocateRawAsciiString(length, pretenure),
- String);
+ SeqAsciiString);
}
-Handle<String> Factory::NewRawTwoByteString(int length,
- PretenureFlag pretenure) {
+Handle<SeqTwoByteString> Factory::NewRawTwoByteString(int length,
+ PretenureFlag
pretenure) {
CALL_HEAP_FUNCTION(
isolate(),
isolate()->heap()->AllocateRawTwoByteString(length, pretenure),
- String);
+ SeqTwoByteString);
}
@@ -214,7 +214,7 @@ Handle<String> Factory::NewSubString(Handle<String> str,
}
-Handle<String> Factory::NewStrictSubString(Handle<String> str,
+Handle<String> Factory::NewProperSubString(Handle<String> str,
int begin,
int end) {
ASSERT(begin > 0 || end < str->length());
Index: src/factory.h
diff --git a/src/factory.h b/src/factory.h
index
8511915dbdc1cd639f7fd9b833efa89b26964927..fa385e2e783a879cd54722196df5e8007ef4fbe5
100644
--- a/src/factory.h
+++ b/src/factory.h
@@ -117,10 +117,10 @@ class Factory {
// Allocates and partially initializes an ASCII or TwoByte String. The
// characters of the string are uninitialized. Currently used in regexp
code
// only, where they are pretenured.
- Handle<String> NewRawAsciiString(
+ Handle<SeqAsciiString> NewRawAsciiString(
int length,
PretenureFlag pretenure = NOT_TENURED);
- Handle<String> NewRawTwoByteString(
+ Handle<SeqTwoByteString> NewRawTwoByteString(
int length,
PretenureFlag pretenure = NOT_TENURED);
@@ -133,8 +133,8 @@ class Factory {
int begin,
int end);
- // Create a new string object which holds a strict substring of a string.
- Handle<String> NewStrictSubString(Handle<String> str,
+ // Create a new string object which holds a proper substring of a string.
+ Handle<String> NewProperSubString(Handle<String> str,
int begin,
int end);
Index: src/json-parser.h
diff --git a/src/json-parser.h b/src/json-parser.h
index
f772f56ff033ba56ac3085943a6a9e04485f50e3..d505ecfd5a0084136df24b4194322058bd46d8b1
100644
--- a/src/json-parser.h
+++ b/src/json-parser.h
@@ -413,7 +413,7 @@ Handle<Object> JsonParser<seq_ascii>::ParseJsonNumber()
{
template <bool seq_ascii>
Handle<String> JsonParser<seq_ascii>::SlowScanJsonString(int beg_pos) {
// The currently scanned ascii characters.
- Handle<String> ascii(isolate()->factory()->NewStrictSubString(source_,
+ Handle<String> ascii(isolate()->factory()->NewProperSubString(source_,
beg_pos,
position_));
Handle<String> two_byte =
@@ -532,7 +532,7 @@ Handle<String> JsonParser<seq_ascii>::ScanJsonString() {
beg_pos,
end_pos - beg_pos);
} else {
- return isolate()->factory()->NewStrictSubString(source_,
+ return isolate()->factory()->NewProperSubString(source_,
beg_pos,
end_pos);
}
Index: src/runtime.cc
diff --git a/src/runtime.cc b/src/runtime.cc
index
f11d745d8f8fc258076653877dd57022b48d414d..29d4ecd77d5e56ed18710d861c8f4d3ed4b82025
100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -2274,24 +2274,24 @@ class ReplacementStringBuilder {
Handle<String> joined_string;
if (is_ascii_) {
- joined_string = NewRawAsciiString(character_count_);
+ Handle<SeqAsciiString> seq = NewRawAsciiString(character_count_);
AssertNoAllocation no_alloc;
- SeqAsciiString* seq = SeqAsciiString::cast(*joined_string);
char* char_buffer = seq->GetChars();
StringBuilderConcatHelper(*subject_,
char_buffer,
*array_builder_.array(),
array_builder_.length());
+ joined_string = Handle<String>::cast(seq);
} else {
// Non-ASCII.
- joined_string = NewRawTwoByteString(character_count_);
+ Handle<SeqTwoByteString> seq = NewRawTwoByteString(character_count_);
AssertNoAllocation no_alloc;
- SeqTwoByteString* seq = SeqTwoByteString::cast(*joined_string);
uc16* char_buffer = seq->GetChars();
StringBuilderConcatHelper(*subject_,
char_buffer,
*array_builder_.array(),
array_builder_.length());
+ joined_string = Handle<String>::cast(seq);
}
return joined_string;
}
@@ -2309,15 +2309,13 @@ class ReplacementStringBuilder {
}
private:
- Handle<String> NewRawAsciiString(int size) {
- CALL_HEAP_FUNCTION(heap_->isolate(),
- heap_->AllocateRawAsciiString(size), String);
+ Handle<SeqAsciiString> NewRawAsciiString(int length) {
+ return heap_->isolate()->factory()->NewRawAsciiString(length);
}
- Handle<String> NewRawTwoByteString(int size) {
- CALL_HEAP_FUNCTION(heap_->isolate(),
- heap_->AllocateRawTwoByteString(size), String);
+ Handle<SeqTwoByteString> NewRawTwoByteString(int length) {
+ return heap_->isolate()->factory()->NewRawTwoByteString(length);
}
@@ -3172,7 +3170,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StringMatch) {
int from = offsets.at(i * 2);
int to = offsets.at(i * 2 + 1);
Handle<String> substring = isolate->factory()->
- NewStrictSubString(subject, from, to);
+ NewProperSubString(subject, from, to);
elements->set(i, *substring);
}
Handle<JSArray> result =
isolate->factory()->NewJSArrayWithElements(elements);
@@ -3342,7 +3340,7 @@ static RegExpImpl::IrregexpResult
SearchRegExpNoCaptureMultiple(
match_end = register_vector[1];
HandleScope loop_scope(isolate);
if (!first) {
- builder->Add(*isolate->factory()->NewStrictSubString(subject,
+ builder->Add(*isolate->factory()->NewProperSubString(subject,
match_start,
match_end));
} else {
@@ -3434,7 +3432,7 @@ static RegExpImpl::IrregexpResult
SearchRegExpMultiple(
isolate->factory()->NewFixedArray(3 + capture_count);
Handle<String> match;
if (!first) {
- match = isolate->factory()->NewStrictSubString(subject,
+ match = isolate->factory()->NewProperSubString(subject,
match_start,
match_end);
} else {
@@ -3450,7 +3448,7 @@ static RegExpImpl::IrregexpResult
SearchRegExpMultiple(
ASSERT(start <= end);
Handle<String> substring;
if (!first) {
- substring = isolate->factory()->NewStrictSubString(subject,
+ substring = isolate->factory()->NewProperSubString(subject,
start,
end);
} else {
@@ -5855,7 +5853,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StringSplit) {
HandleScope local_loop_handle;
int part_end = indices.at(i);
Handle<String> substring =
- isolate->factory()->NewStrictSubString(subject, part_start,
part_end);
+ isolate->factory()->NewProperSubString(subject, part_start,
part_end);
elements->set(i, *substring);
part_start = part_end + pattern_length;
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev