diff options
Diffstat (limited to 'source/Host/common/ThisThread.cpp')
| -rw-r--r-- | source/Host/common/ThisThread.cpp | 58 | 
1 files changed, 28 insertions, 30 deletions
diff --git a/source/Host/common/ThisThread.cpp b/source/Host/common/ThisThread.cpp index 763701441c1a..b3f9edee2e16 100644 --- a/source/Host/common/ThisThread.cpp +++ b/source/Host/common/ThisThread.cpp @@ -7,9 +7,9 @@  //  //===----------------------------------------------------------------------===// +#include "lldb/Host/ThisThread.h"  #include "lldb/Core/Error.h"  #include "lldb/Host/HostInfo.h" -#include "lldb/Host/ThisThread.h"  #include "llvm/ADT/STLExtras.h" @@ -18,35 +18,33 @@  using namespace lldb;  using namespace lldb_private; -void -ThisThread::SetName(llvm::StringRef name, int max_length) -{ -    std::string truncated_name(name.data()); - -    // Thread names are coming in like '<lldb.comm.debugger.edit>' and -    // '<lldb.comm.debugger.editline>'.  So just chopping the end of the string -    // off leads to a lot of similar named threads.  Go through the thread name -    // and search for the last dot and use that. - -    if (max_length > 0 && truncated_name.length() > static_cast<size_t>(max_length)) -    { -        // First see if we can get lucky by removing any initial or final braces. -        std::string::size_type begin = truncated_name.find_first_not_of("(<"); -        std::string::size_type end = truncated_name.find_last_not_of(")>."); -        if (end - begin > static_cast<size_t>(max_length)) -        { -            // We're still too long.  Since this is a dotted component, use everything after the last -            // dot, up to a maximum of |length| characters. -            std::string::size_type last_dot = truncated_name.rfind('.'); -            if (last_dot != std::string::npos) -                begin = last_dot + 1; - -            end = std::min(end, begin + max_length); -        } - -        std::string::size_type count = end - begin + 1; -        truncated_name = truncated_name.substr(begin, count); +void ThisThread::SetName(llvm::StringRef name, int max_length) { +  std::string truncated_name(name.data()); + +  // Thread names are coming in like '<lldb.comm.debugger.edit>' and +  // '<lldb.comm.debugger.editline>'.  So just chopping the end of the string +  // off leads to a lot of similar named threads.  Go through the thread name +  // and search for the last dot and use that. + +  if (max_length > 0 && +      truncated_name.length() > static_cast<size_t>(max_length)) { +    // First see if we can get lucky by removing any initial or final braces. +    std::string::size_type begin = truncated_name.find_first_not_of("(<"); +    std::string::size_type end = truncated_name.find_last_not_of(")>."); +    if (end - begin > static_cast<size_t>(max_length)) { +      // We're still too long.  Since this is a dotted component, use everything +      // after the last +      // dot, up to a maximum of |length| characters. +      std::string::size_type last_dot = truncated_name.rfind('.'); +      if (last_dot != std::string::npos) +        begin = last_dot + 1; + +      end = std::min(end, begin + max_length);      } -    SetName(truncated_name.c_str()); +    std::string::size_type count = end - begin + 1; +    truncated_name = truncated_name.substr(begin, count); +  } + +  SetName(truncated_name);  }  | 
