Author: Alex Langford Date: 2023-06-01T10:03:56-07:00 New Revision: ab27431596c4f61f84ce41e27aad09a4dde3fc5a
URL: https://github.com/llvm/llvm-project/commit/ab27431596c4f61f84ce41e27aad09a4dde3fc5a DIFF: https://github.com/llvm/llvm-project/commit/ab27431596c4f61f84ce41e27aad09a4dde3fc5a.diff LOG: [lldb][NFCI] Remove use of ConstString from UnixSignals::SignalCode On llvm.org and all downstream forks that I'm aware of, SignalCodes are always created from C string literals. They are never compared to anything so they take up space in the ConstString StringPool for no tangible benefit. I've changed the type here to `const llvm::StringLiteral` instead of using a `StringRef` or a `const char *` to express intent -- These strings come from constant data whose lifetime is directly tied to that of the running process (and are thus safe to store). Differential Revision: https://reviews.llvm.org/D151516 Added: Modified: lldb/include/lldb/Target/UnixSignals.h lldb/source/Target/UnixSignals.cpp Removed: ################################################################################ diff --git a/lldb/include/lldb/Target/UnixSignals.h b/lldb/include/lldb/Target/UnixSignals.h index 859cf0c814f69..74eb75fa23aa4 100644 --- a/lldb/include/lldb/Target/UnixSignals.h +++ b/lldb/include/lldb/Target/UnixSignals.h @@ -94,7 +94,7 @@ class UnixSignals { // Instead of calling this directly, use a ADD_SIGCODE macro to get compile // time checks when on the native platform. void AddSignalCode( - int signo, int code, const char *description, + int signo, int code, const llvm::StringLiteral description, SignalCodePrintOption print_option = SignalCodePrintOption::None); void RemoveSignal(int signo); @@ -127,8 +127,8 @@ class UnixSignals { // Classes that inherit from UnixSignals can see and modify these struct SignalCode { - ConstString m_description; - SignalCodePrintOption m_print_option; + const llvm::StringLiteral m_description; + const SignalCodePrintOption m_print_option; }; struct Signal { diff --git a/lldb/source/Target/UnixSignals.cpp b/lldb/source/Target/UnixSignals.cpp index d754537cc4cf4..5d0f687b8ba6f 100644 --- a/lldb/source/Target/UnixSignals.cpp +++ b/lldb/source/Target/UnixSignals.cpp @@ -113,13 +113,14 @@ void UnixSignals::AddSignal(int signo, const char *name, bool default_suppress, ++m_version; } -void UnixSignals::AddSignalCode(int signo, int code, const char *description, +void UnixSignals::AddSignalCode(int signo, int code, + const llvm::StringLiteral description, SignalCodePrintOption print_option) { collection::iterator signal = m_signals.find(signo); assert(signal != m_signals.end() && "Tried to add code to signal that does not exist."); signal->second.m_codes.insert( - std::pair{code, SignalCode{ConstString(description), print_option}}); + std::pair{code, SignalCode{description, print_option}}); ++m_version; } @@ -150,13 +151,13 @@ UnixSignals::GetSignalDescription(int32_t signo, std::optional<int32_t> code, str = pos->second.m_name.GetCString(); if (code) { - std::map<int, SignalCode>::const_iterator cpos = + std::map<int32_t, SignalCode>::const_iterator cpos = pos->second.m_codes.find(*code); if (cpos != pos->second.m_codes.end()) { const SignalCode &sc = cpos->second; str += ": "; if (sc.m_print_option != SignalCodePrintOption::Bounds) - str += sc.m_description.GetCString(); + str += sc.m_description.str(); std::stringstream strm; switch (sc.m_print_option) { @@ -178,7 +179,7 @@ UnixSignals::GetSignalDescription(int32_t signo, std::optional<int32_t> code, strm << ", upper bound: 0x" << std::hex << *upper; strm << ")"; } else - strm << sc.m_description.GetCString(); + strm << sc.m_description.str(); break; } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits