#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/platform/wtf/text/atomic_string_table.h"
#include "base/notreached.h"
#include "third_party/blink/renderer/platform/wtf/text/character_visitor.h"
#include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
#include "third_party/blink/renderer/platform/wtf/text/utf8.h"
namespace WTF {
namespace {
ALWAYS_INLINE static bool IsOnly8Bit(const UChar* chars, unsigned len) { … }
class UCharBuffer { … };
struct UCharBufferTranslator { … };
struct StringViewLookupTranslator { … };
template <typename CharType>
struct ASCIILowerHashReader { … };
struct ASCIIConvertTo8AndLowerHashReader { … };
class HashTranslatorLowercaseBuffer { … };
struct LowercaseLookupTranslator { … };
}
AtomicStringTable& AtomicStringTable::Instance() { … }
AtomicStringTable::AtomicStringTable() { … }
void AtomicStringTable::ReserveCapacity(unsigned size) { … }
template <typename T, typename HashTranslator>
scoped_refptr<StringImpl> AtomicStringTable::AddToStringTable(const T& value) { … }
scoped_refptr<StringImpl> AtomicStringTable::Add(
const UChar* s,
unsigned length,
AtomicStringUCharEncoding encoding) { … }
class LCharBuffer { … };
struct LCharBufferTranslator { … };
scoped_refptr<StringImpl> AtomicStringTable::Add(const LChar* s,
unsigned length) { … }
StringImpl* AtomicStringTable::AddNoLock(StringImpl* string) { … }
scoped_refptr<StringImpl> AtomicStringTable::Add(StringImpl* string) { … }
scoped_refptr<StringImpl> AtomicStringTable::Add(
scoped_refptr<StringImpl>&& string) { … }
scoped_refptr<StringImpl> AtomicStringTable::AddUTF8(
const char* characters_start,
const char* characters_end) { … }
AtomicStringTable::WeakResult AtomicStringTable::WeakFindSlowForTesting(
const StringView& string) { … }
AtomicStringTable::WeakResult AtomicStringTable::WeakFindLowercase(
const AtomicString& string) { … }
bool AtomicStringTable::ReleaseAndRemoveIfNeeded(StringImpl* string) { … }
}