Commit 01f86817 authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook GitHub Bot

let symbolizer code use to_ascii

Summary: Since it is documented as async-signal-safe. V.s. importing from `folly/Conv.h`.

Reviewed By: Orvid

Differential Revision: D27221887

fbshipit-source-id: 9dbe866be84632f8f50f2e00c91697cc39f0b304
parent 42b60e0e
...@@ -30,9 +30,9 @@ ...@@ -30,9 +30,9 @@
#include <glog/logging.h> #include <glog/logging.h>
#include <folly/Conv.h>
#include <folly/ScopeGuard.h> #include <folly/ScopeGuard.h>
#include <folly/experimental/symbolizer/Symbolizer.h> #include <folly/experimental/symbolizer/Symbolizer.h>
#include <folly/lang/ToAscii.h>
#include <folly/portability/SysSyscall.h> #include <folly/portability/SysSyscall.h>
#include <folly/portability/Unistd.h> #include <folly/portability/Unistd.h>
...@@ -171,26 +171,18 @@ void flush() { ...@@ -171,26 +171,18 @@ void flush() {
} }
void printDec(uint64_t val) { void printDec(uint64_t val) {
char buf[20]; char buf[to_ascii_size_max_decimal<uint64_t>()];
uint32_t n = uint64ToBufferUnsafe(val, buf); size_t n = to_ascii_decimal(buf, val);
gStackTracePrinter->print(StringPiece(buf, n)); gStackTracePrinter->print(StringPiece(buf, n));
} }
const char kHexChars[] = "0123456789abcdef";
void printHex(uint64_t val) { void printHex(uint64_t val) {
// TODO(tudorb): Add this to folly/Conv.h char buf[2 + to_ascii_size_max<16, uint64_t>()];
char buf[2 + 2 * sizeof(uint64_t)]; // "0x" prefix, 2 digits for each byte auto out = buf + 0;
*out++ = '0';
char* end = buf + sizeof(buf); *out++ = 'x';
char* p = end; out += to_ascii_lower<16>(out, val);
do { gStackTracePrinter->print(StringPiece(buf, out - buf));
*--p = kHexChars[val & 0x0f];
val >>= 4;
} while (val != 0);
*--p = 'x';
*--p = '0';
gStackTracePrinter->print(StringPiece(p, end));
} }
void dumpTimeInfo() { void dumpTimeInfo() {
......
...@@ -16,11 +16,11 @@ ...@@ -16,11 +16,11 @@
#include <folly/experimental/symbolizer/SymbolizePrinter.h> #include <folly/experimental/symbolizer/SymbolizePrinter.h>
#include <folly/Conv.h>
#include <folly/Demangle.h> #include <folly/Demangle.h>
#include <folly/FileUtil.h> #include <folly/FileUtil.h>
#include <folly/ScopeGuard.h> #include <folly/ScopeGuard.h>
#include <folly/io/IOBuf.h> #include <folly/io/IOBuf.h>
#include <folly/lang/ToAscii.h>
#ifdef __GLIBCXX__ #ifdef __GLIBCXX__
#include <ext/stdio_filebuf.h> #include <ext/stdio_filebuf.h>
...@@ -113,8 +113,8 @@ void SymbolizePrinter::print(const SymbolizedFrame& frame) { ...@@ -113,8 +113,8 @@ void SymbolizePrinter::print(const SymbolizedFrame& frame) {
} }
doPrint(fileBuf); doPrint(fileBuf);
char buf[22]; char buf[to_ascii_size_max_decimal<decltype(frame.location.line)>()];
uint32_t n = uint64ToBufferUnsafe(frame.location.line, buf); uint32_t n = to_ascii_decimal(buf, frame.location.line);
doPrint(":"); doPrint(":");
doPrint(StringPiece(buf, n)); doPrint(StringPiece(buf, n));
} else { } else {
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include <cstdlib> #include <cstdlib>
#include <iostream> #include <iostream>
#include <folly/Conv.h>
#include <folly/FileUtil.h> #include <folly/FileUtil.h>
#include <folly/Memory.h> #include <folly/Memory.h>
#include <folly/ScopeGuard.h> #include <folly/ScopeGuard.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment