| Index: src/objects.cc
|
| ===================================================================
|
| --- src/objects.cc (revision 695)
|
| +++ 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;
|
| }
|
|
|