Index: src/objects.cc |
=================================================================== |
--- src/objects.cc (revision 694) |
+++ src/objects.cc (working copy) |
@@ -3717,21 +3717,6 @@ |
} |
-Object* SlicedString::SlicedStringFlatten() { |
- // The SlicedString constructor should ensure that there are no |
- // SlicedStrings that are constructed directly on top of other |
- // SlicedStrings. |
- String* buf = String::cast(buffer()); |
- StringShape buf_shape(buf); |
- ASSERT(!buf_shape.IsSliced()); |
- if (buf_shape.IsCons()) { |
- Object* ok = buf->Flatten(buf_shape); |
- if (ok->IsFailure()) return ok; |
- } |
- return this; |
-} |
- |
- |
template <typename sinkchar> |
void String::WriteToFlat(String* src, |
StringShape src_shape, |
@@ -3975,8 +3960,7 @@ |
bool String::MarkAsUndetectable() { |
- StringShape shape(this); |
- if (shape.IsSymbol()) return false; |
+ if (StringShape(this).IsSymbol()) return false; |
Map* map = this->map(); |
if (map == Heap::short_string_map()) { |
@@ -4134,7 +4118,8 @@ |
} |
-Object* String::Slice(StringShape shape, int start, int end) { |
+Object* String::Slice(int start, int end) { |
+ StringShape shape(this); |
if (start == 0 && end == length(shape)) return this; |
if (shape.representation_tag() == kSlicedStringTag) { |
// Translate slices of a SlicedString into slices of the |
@@ -4142,11 +4127,10 @@ |
SlicedString* str = SlicedString::cast(this); |
String* buf = str->buffer(); |
return Heap::AllocateSlicedString(buf, |
- StringShape(buf), |
str->start() + start, |
str->start() + end); |
} |
- Object* result = Heap::AllocateSlicedString(this, shape, start, end); |
+ Object* result = Heap::AllocateSlicedString(this, start, end); |
if (result->IsFailure()) { |
return result; |
} |