MCPcopy Create free account
hub / github.com/async-profiler/async-profiler / code_to_utf8

Function code_to_utf8

src/rustDemangle.cpp:215–240  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

213}
214
215static size_t code_to_utf8(unsigned char *buffer, uint32_t code)
216{
217 if (code <= 0x7F) {
218 buffer[0] = code;
219 return 1;
220 }
221 if (code <= 0x7FF) {
222 buffer[0] = 0xC0 | (code >> 6); /* 110xxxxx */
223 buffer[1] = 0x80 | (code & 0x3F); /* 10xxxxxx */
224 return 2;
225 }
226 if (code <= 0xFFFF) {
227 buffer[0] = 0xE0 | (code >> 12); /* 1110xxxx */
228 buffer[1] = 0x80 | ((code >> 6) & 0x3F); /* 10xxxxxx */
229 buffer[2] = 0x80 | (code & 0x3F); /* 10xxxxxx */
230 return 3;
231 }
232 if (code <= 0x10FFFF) {
233 buffer[0] = 0xF0 | (code >> 18); /* 11110xxx */
234 buffer[1] = 0x80 | ((code >> 12) & 0x3F); /* 10xxxxxx */
235 buffer[2] = 0x80 | ((code >> 6) & 0x3F); /* 10xxxxxx */
236 buffer[3] = 0x80 | (code & 0x3F); /* 10xxxxxx */
237 return 4;
238 }
239 return 0;
240}
241
242
243// return length of char at byte, or SIZE_MAX if invalid. buf should have 4 valid characters

Calls

no outgoing calls

Tested by

no test coverage detected