Index: src/objects.h |
=================================================================== |
--- src/objects.h (revision 1519) |
+++ src/objects.h (working copy) |
@@ -3139,13 +3139,9 @@ |
// to be passed by value and is immutable, but be aware that flattening a |
// string can potentially alter its shape. Also be aware that a GC caused by |
// something else can alter the shape of a string due to ConsString |
-// shortcutting. |
-// |
-// Most of the methods designed to interrogate a string as to its exact nature |
-// have been made into methods on StringShape in order to encourage the use of |
-// StringShape. The String class has both a length() and a length(StringShape) |
-// operation. The former is simpler to type, but the latter is faster if you |
-// need the StringShape for some other operation immediately before or after. |
+// shortcutting. Keeping these restrictions in mind has proven to be error- |
+// prone and so we no longer put StringShapes in variables unless there is a |
+// concrete performance benefit at that particular point in the code. |
class StringShape BASE_EMBEDDED { |
public: |
inline explicit StringShape(String* s); |
@@ -3194,9 +3190,6 @@ |
class String: public HeapObject { |
public: |
// Get and set the length of the string. |
- // Fast version. |
- inline int length(StringShape shape); |
- // Easy version. |
inline int length(); |
inline void set_length(int value); |
@@ -3208,22 +3201,22 @@ |
inline void set_length_field(uint32_t value); |
// Get and set individual two byte chars in the string. |
- inline void Set(StringShape shape, int index, uint16_t value); |
+ inline void Set(int index, uint16_t value); |
// Get individual two byte char in the string. Repeated calls |
// to this method are not efficient unless the string is flat. |
- inline uint16_t Get(StringShape shape, int index); |
+ inline uint16_t Get(int index); |
// Try to flatten the top level ConsString that is hiding behind this |
// string. This is a no-op unless the string is a ConsString or a |
// SlicedString. Flatten mutates the ConsString and might return a |
// failure. |
- Object* TryFlatten(StringShape shape); |
+ Object* TryFlatten(); |
// Try to flatten the string. Checks first inline to see if it is necessary. |
// Do not handle allocation failures. After calling TryFlattenIfNotFlat, the |
// string could still be a ConsString, in which case a failure is returned. |
// Use FlattenString from Handles.cc to be sure to flatten. |
- inline Object* TryFlattenIfNotFlat(StringShape shape); |
+ inline Object* TryFlattenIfNotFlat(); |
Vector<const char> ToAsciiVector(); |
Vector<const uc16> ToUC16Vector(); |
@@ -3302,7 +3295,7 @@ |
void StringPrint(); |
void StringVerify(); |
#endif |
- inline bool IsFlat(StringShape shape); |
+ inline bool IsFlat(); |
// Layout description. |
static const int kLengthOffset = HeapObject::kHeaderSize; |
@@ -3364,7 +3357,6 @@ |
// Helper function for flattening strings. |
template <typename sinkchar> |
static void WriteToFlat(String* source, |
- StringShape shape, |
sinkchar* sink, |
int from, |
int to); |
@@ -3405,9 +3397,7 @@ |
private: |
// Slow case of String::Equals. This implementation works on any strings |
// but it is most efficient on strings that are almost flat. |
- bool SlowEquals(StringShape this_shape, |
- String* other, |
- StringShape other_shape); |
+ bool SlowEquals(String* other); |
// Slow case of AsArrayIndex. |
bool SlowAsArrayIndex(uint32_t* index); |
@@ -3454,7 +3444,7 @@ |
// Garbage collection support. This method is called by the |
// garbage collector to compute the actual size of an AsciiString |
// instance. |
- inline int SeqAsciiStringSize(StringShape shape); |
+ inline int SeqAsciiStringSize(InstanceType instance_type); |
// Computes the size for an AsciiString instance of a given length. |
static int SizeFor(int length) { |
@@ -3499,7 +3489,7 @@ |
// Garbage collection support. This method is called by the |
// garbage collector to compute the actual size of a TwoByteString |
// instance. |
- inline int SeqTwoByteStringSize(StringShape shape); |
+ inline int SeqTwoByteStringSize(InstanceType instance_type); |
// Computes the size for a TwoByteString instance of a given length. |
static int SizeFor(int length) { |