| 136 | } |
| 137 | |
| 138 | StaticStringUTF32Storage StaticString::utf32Storage() const { |
| 139 | switch (encoding()) { |
| 140 | case StaticString::Encoding::UTF8: { |
| 141 | auto pair = utf8ToUtf32(utf8Data(), size()); |
| 142 | return StaticStringUTF32Storage(reinterpret_cast<const char32_t*>(pair.first), pair.second); |
| 143 | } |
| 144 | case StaticString::Encoding::UTF16: { |
| 145 | auto pair = utf16ToUtf32(utf16Data(), size()); |
| 146 | return StaticStringUTF32Storage(reinterpret_cast<const char32_t*>(pair.first), pair.second); |
| 147 | } |
| 148 | case StaticString::Encoding::UTF32: |
| 149 | return StaticStringUTF32Storage(utf32Data(), size()); |
| 150 | } |
| 151 | } |
| 152 | |
| 153 | Ref<StaticString> StaticString::makeUTF8(size_t size) { |
| 154 | StaticStringAllocator allocator; |