| Index: src/objects.cc
|
| ===================================================================
|
| --- src/objects.cc (revision 1138)
|
| +++ src/objects.cc (working copy)
|
| @@ -587,7 +587,7 @@
|
| }
|
|
|
|
|
| -Object* String::Flatten(StringShape shape) {
|
| +Object* String::TryFlatten(StringShape shape) {
|
| #ifdef DEBUG
|
| // Do not attempt to flatten in debug mode when allocation is not
|
| // allowed. This is to avoid an assertion failure when allocating.
|
| @@ -604,11 +604,11 @@
|
| // SlicedStrings.
|
| String* buf = ss->buffer();
|
| ASSERT(!buf->IsSlicedString());
|
| - Object* ok = buf->Flatten(StringShape(buf));
|
| + Object* ok = buf->TryFlatten(StringShape(buf));
|
| if (ok->IsFailure()) return ok;
|
| - // Under certain circumstances (TryFlatten fails in String::Slice)
|
| - // we can have a cons string under a slice. In this case we need
|
| - // to get the flat string out of the cons!
|
| + // Under certain circumstances (TryFlattenIfNotFlat fails in
|
| + // String::Slice) we can have a cons string under a slice.
|
| + // In this case we need to get the flat string out of the cons!
|
| if (StringShape(String::cast(ok)).IsCons()) {
|
| ss->set_buffer(ConsString::cast(ok)->first());
|
| }
|
| @@ -2413,8 +2413,8 @@
|
| return Heap::undefined_value();
|
| }
|
|
|
| - // TryFlatten before operating on the string.
|
| - name->TryFlatten(StringShape(name));
|
| + // Try to flatten before operating on the string.
|
| + name->TryFlattenIfNotFlat(StringShape(name));
|
|
|
| // Make sure name is not an index.
|
| uint32_t index;
|
| @@ -3065,9 +3065,7 @@
|
| // doesn't make Utf8Length faster, but it is very likely that
|
| // the string will be accessed later (for example by WriteUtf8)
|
| // so it's still a good idea.
|
| - if (!IsFlat(shape)) {
|
| - TryFlatten(shape); // shape is now no longer valid.
|
| - }
|
| + TryFlattenIfNotFlat(shape); // shape is now no longer valid.
|
| Access<StringInputBuffer> buffer(&string_input_buffer);
|
| buffer->Reset(0, this);
|
| int result = 0;
|
|
|