class TextEncoding;
}
-namespace WebCore {
-
-// Space characters as defined by the HTML specification.
-bool isHTMLSpace(UChar);
-bool isHTMLLineBreak(UChar);
-bool isNotHTMLSpace(UChar);
+namespace blink {
// Strip leading and trailing whitespace as defined by the HTML specification.
String stripLeadingAndTrailingHTMLSpaces(const String&);
bool parseHTMLInteger(const String&, int&);
// http://www.whatwg.org/specs/web-apps/current-work/#rules-for-parsing-non-negative-integers
-bool parseHTMLNonNegativeInteger(const String&, unsigned int&);
+bool parseHTMLNonNegativeInteger(const String&, unsigned&);
-typedef Vector<pair<String, String> > HTMLAttributeList;
+typedef Vector<pair<String, String>> HTMLAttributeList;
// The returned encoding might not be valid.
WTF::TextEncoding encodingFromMetaAttributes(const HTMLAttributeList&);
-// Inline implementations of some of the functions declared above.
-
+// Space characters as defined by the HTML specification.
template<typename CharType>
inline bool isHTMLSpace(CharType character)
{
}
template<typename CharType>
+inline bool isComma(CharType character)
+{
+ return character == ',';
+}
+
+template<typename CharType>
inline bool isHTMLSpaceOrComma(CharType character)
{
- return isHTMLSpace<CharType>(character) || character == ',';
+ return isComma(character) || isHTMLSpace(character);
}
inline bool isHTMLLineBreak(UChar character)
bool threadSafeMatch(const QualifiedName&, const QualifiedName&);
bool threadSafeMatch(const String&, const QualifiedName&);
-StringImpl* findStringIfStatic(const UChar* characters, unsigned length);
-
enum CharacterWidth {
Likely8Bit,
Force8Bit,
Force16Bit
};
+String attemptStaticStringCreation(const LChar*, size_t);
+
+String attemptStaticStringCreation(const UChar*, size_t, CharacterWidth);
+
template<size_t inlineCapacity>
-static String attemptStaticStringCreation(const Vector<UChar, inlineCapacity>& vector, CharacterWidth width)
+inline static String attemptStaticStringCreation(const Vector<UChar, inlineCapacity>& vector, CharacterWidth width)
{
- String string(findStringIfStatic(vector.data(), vector.size()));
- if (string.impl())
- return string;
- if (width == Likely8Bit)
- string = StringImpl::create8BitIfPossible(vector);
- else if (width == Force8Bit)
- string = String::make8BitFrom16BitSource(vector);
- else
- string = String(vector);
-
- return string;
+ return attemptStaticStringCreation(vector.data(), vector.size(), width);
}
+inline static String attemptStaticStringCreation(const String str)
+{
+ if (!str.is8Bit())
+ return attemptStaticStringCreation(str.characters16(), str.length(), Force16Bit);
+ return attemptStaticStringCreation(str.characters8(), str.length());
+}
+
+
}
#endif