Source/JavaScriptCore/ChangeLog

 12011-01-27 Adam Barth <abarth@webkit.org>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 Add WTFString method to compare equality with Vector<UChar>
 6 https://bugs.webkit.org/show_bug.cgi?id=53266
 7
 8 I'm planning to use this method in the new XSS filter implementation,
 9 but it seems generally useful.
 10
 11 * wtf/text/StringImpl.h:
 12 (WTF::equalIgnoringNullity):
 13 * wtf/text/WTFString.h:
 14 (WTF::equalIgnoringNullity):
 15
1162011-01-26 Sam Weinig <sam@webkit.org>
217
318 Reviewed by Maciej Stachowiak.

Source/JavaScriptCore/wtf/text/StringImpl.h

@@inline bool equalIgnoringCase(const char* a, const UChar* b, unsigned length) {
354354
355355bool equalIgnoringNullity(StringImpl*, StringImpl*);
356356
 357template<size_t inlineCapacity>
 358bool equalIgnoringNullity(const Vector<UChar, inlineCapacity>& a, StringImpl* b)
 359{
 360 if (!b)
 361 return !a.size();
 362 if (a.size() != b->length())
 363 return false;
 364 if (!a.size())
 365 return true;
 366 return !memcmp(a.data(), b->characters(), b->length());
 367}
 368
357369int codePointCompare(const StringImpl*, const StringImpl*);
358370
359371static inline bool isSpaceOrNewline(UChar c)

Source/JavaScriptCore/wtf/text/WTFString.h

@@inline bool equalPossiblyIgnoringCase(const String& a, const String& b, bool ign
369369
370370inline bool equalIgnoringNullity(const String& a, const String& b) { return equalIgnoringNullity(a.impl(), b.impl()); }
371371
 372template<size_t inlineCapacity>
 373inline bool equalIgnoringNullity(const Vector<UChar, inlineCapacity>& a, const String& b) { return equalIgnoringNullity(a, b.impl()); }
 374
372375inline bool operator!(const String& str) { return str.isNull(); }
373376
374377inline void swap(String& a, String& b) { a.swap(b); }