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

Function try_parse_uint

src/rustDemangle.cpp:450–468  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

448}
449
450static NODISCARD bool try_parse_uint(const char *buf, size_t len, uint64_t *result) {
451 size_t cur = 0;
452 for(;cur < len && buf[cur] == '0';cur++);
453 uint64_t result_val = 0;
454 if (len - cur > 16) return false;
455 for(;cur < len;cur++) {
456 char c = buf[cur];
457 result_val <<= 4;
458 if ('0' <= c && c <= '9') {
459 result_val += c - '0';
460 } else if ('a' <= c && c <= 'f') {
461 result_val += 10 + (c - 'a');
462 } else {
463 return false;
464 }
465 }
466 *result = result_val;
467 return true;
468}
469
470static NODISCARD bool dinibble2int(const char *buf, uint8_t *result) {
471 uint8_t result_val = 0;

Calls

no outgoing calls

Tested by

no test coverage detected