23 static void release(
const char*& a_entry);
24 static void release(
const wchar_t*& a_entry);
32 [[nodiscard]] constexpr std::uint16_t
crc() const noexcept {
return _crc; }
35 [[nodiscard]]
const T*
data() const noexcept;
38 [[nodiscard]] inline const
char*
data<
char>() const noexcept
44 [[nodiscard]]
inline const wchar_t* data<wchar_t>() const noexcept
50 [[nodiscard]] constexpr std::uint32_t
size() const noexcept {
return length(); }
52 [[nodiscard]]
inline const char*
u8() const noexcept
55 return reinterpret_cast<const char*
>(
this + 1);
58 [[nodiscard]]
inline const wchar_t*
u16() const noexcept
61 return reinterpret_cast<const wchar_t*
>(
this + 1);
64 [[nodiscard]] constexpr
bool wide() const noexcept {
return static_cast<bool>(
_flags &
kWide); }
69 volatile std::uint16_t
_crc;
76 static_assert(
sizeof(Entry) == 0x18);
78 static_assert(std::is_empty_v<BSStringPool>);
Definition: BSAtomic.h:49
Definition: BSStringPool.h:14
constexpr bool wide() const noexcept
Definition: BSStringPool.h:64
constexpr std::uint32_t length() const noexcept
Definition: BSStringPool.h:49
const wchar_t * u16() const noexcept
Definition: BSStringPool.h:58
std::uint32_t _length
Definition: BSStringPool.h:72
static void release16(const wchar_t *&a_entry)
Entry * _left
Definition: BSStringPool.h:67
@ kRefCountMask
Definition: BSStringPool.h:19
@ kLengthMask
Definition: BSStringPool.h:20
@ kWide
Definition: BSStringPool.h:18
constexpr std::uint16_t crc() const noexcept
Definition: BSStringPool.h:32
static void release(const char *&a_entry)
const T * data() const noexcept
constexpr std::uint32_t size() const noexcept
Definition: BSStringPool.h:50
volatile std::uint16_t _crc
Definition: BSStringPool.h:69
static void release(const wchar_t *&a_entry)
Entry * _right
Definition: BSStringPool.h:73
std::uint16_t _flags
Definition: BSStringPool.h:68
static void release8(const char *&a_entry)
const char * u8() const noexcept
Definition: BSStringPool.h:52
Definition: AbsorbEffect.h:6
char * GlobalStringHandle
Definition: BSStringPool.h:7
wchar_t * GlobalStringHandleW
Definition: BSStringPool.h:8
Definition: BSStringPool.h:11
Definition: BSStringPool.h:81
HashMask
Definition: BSStringPool.h:83
@ kEntryIndexMask
Definition: BSStringPool.h:84
@ kLockIndexMask
Definition: BSStringPool.h:85
static BucketTable * GetSingleton()
bool initialized
Definition: BSStringPool.h:93
BSStringPool::Entry * buckets[0x10000]
Definition: BSStringPool.h:91
BSSpinLock locks[0x10000/0x800]
Definition: BSStringPool.h:92