diff --git a/folly/experimental/symbolizer/SignalHandler.cpp b/folly/experimental/symbolizer/SignalHandler.cpp index 2df79a24ebb4c4e3f77ad5711f4b6cff2ace548d..e21b4638ccd02f24eb326077000efe35577489cf 100644 --- a/folly/experimental/symbolizer/SignalHandler.cpp +++ b/folly/experimental/symbolizer/SignalHandler.cpp @@ -30,9 +30,9 @@ #include <glog/logging.h> -#include <folly/Conv.h> #include <folly/ScopeGuard.h> #include <folly/experimental/symbolizer/Symbolizer.h> +#include <folly/lang/ToAscii.h> #include <folly/portability/SysSyscall.h> #include <folly/portability/Unistd.h> @@ -171,26 +171,18 @@ void flush() { } void printDec(uint64_t val) { - char buf[20]; - uint32_t n = uint64ToBufferUnsafe(val, buf); + char buf[to_ascii_size_max_decimal<uint64_t>()]; + size_t n = to_ascii_decimal(buf, val); gStackTracePrinter->print(StringPiece(buf, n)); } -const char kHexChars[] = "0123456789abcdef"; void printHex(uint64_t val) { - // TODO(tudorb): Add this to folly/Conv.h - char buf[2 + 2 * sizeof(uint64_t)]; // "0x" prefix, 2 digits for each byte - - char* end = buf + sizeof(buf); - char* p = end; - do { - *--p = kHexChars[val & 0x0f]; - val >>= 4; - } while (val != 0); - *--p = 'x'; - *--p = '0'; - - gStackTracePrinter->print(StringPiece(p, end)); + char buf[2 + to_ascii_size_max<16, uint64_t>()]; + auto out = buf + 0; + *out++ = '0'; + *out++ = 'x'; + out += to_ascii_lower<16>(out, val); + gStackTracePrinter->print(StringPiece(buf, out - buf)); } void dumpTimeInfo() { diff --git a/folly/experimental/symbolizer/SymbolizePrinter.cpp b/folly/experimental/symbolizer/SymbolizePrinter.cpp index 17c786888a9ab74e3b1fd04a2a751421aa282fb9..4a0d8af1f00080a737ee84fe1955f0c0d3d306c7 100644 --- a/folly/experimental/symbolizer/SymbolizePrinter.cpp +++ b/folly/experimental/symbolizer/SymbolizePrinter.cpp @@ -16,11 +16,11 @@ #include <folly/experimental/symbolizer/SymbolizePrinter.h> -#include <folly/Conv.h> #include <folly/Demangle.h> #include <folly/FileUtil.h> #include <folly/ScopeGuard.h> #include <folly/io/IOBuf.h> +#include <folly/lang/ToAscii.h> #ifdef __GLIBCXX__ #include <ext/stdio_filebuf.h> @@ -113,8 +113,8 @@ void SymbolizePrinter::print(const SymbolizedFrame& frame) { } doPrint(fileBuf); - char buf[22]; - uint32_t n = uint64ToBufferUnsafe(frame.location.line, buf); + char buf[to_ascii_size_max_decimal<decltype(frame.location.line)>()]; + uint32_t n = to_ascii_decimal(buf, frame.location.line); doPrint(":"); doPrint(StringPiece(buf, n)); } else { diff --git a/folly/experimental/symbolizer/Symbolizer.cpp b/folly/experimental/symbolizer/Symbolizer.cpp index ab144c9c48e6dd53319ef7b49ffbd5ad0881b535..58a79fbeaf14958e6e23ed863c91e5dc900c025d 100644 --- a/folly/experimental/symbolizer/Symbolizer.cpp +++ b/folly/experimental/symbolizer/Symbolizer.cpp @@ -21,7 +21,6 @@ #include <cstdlib> #include <iostream> -#include <folly/Conv.h> #include <folly/FileUtil.h> #include <folly/Memory.h> #include <folly/ScopeGuard.h>