diff options
Diffstat (limited to 'lldb/source')
-rw-r--r-- | lldb/source/Commands/CommandObjectTarget.cpp | 9 | ||||
-rw-r--r-- | lldb/source/Host/common/FileSpec.cpp | 6 |
2 files changed, 7 insertions, 8 deletions
diff --git a/lldb/source/Commands/CommandObjectTarget.cpp b/lldb/source/Commands/CommandObjectTarget.cpp index 899db4c9ce1..522a4828624 100644 --- a/lldb/source/Commands/CommandObjectTarget.cpp +++ b/lldb/source/Commands/CommandObjectTarget.cpp @@ -1385,12 +1385,9 @@ DumpFullpath (Stream &strm, const FileSpec *file_spec_ptr, uint32_t width) { if (width > 0) { - char fullpath[PATH_MAX]; - if (file_spec_ptr->GetPath(fullpath, sizeof(fullpath))) - { - strm.Printf("%-*s", width, fullpath); - return; - } + std::string fullpath = file_spec_ptr->GetPath(); + strm.Printf("%-*s", width, fullpath.c_str()); + return; } else { diff --git a/lldb/source/Host/common/FileSpec.cpp b/lldb/source/Host/common/FileSpec.cpp index 82f5b344b9a..3e56e5c204e 100644 --- a/lldb/source/Host/common/FileSpec.cpp +++ b/lldb/source/Host/common/FileSpec.cpp @@ -523,10 +523,11 @@ FileSpec::Equal (const FileSpec& a, const FileSpec& b, bool full) void FileSpec::Dump(Stream *s) const { + static ConstString g_slash_only ("/"); if (s) { m_directory.Dump(s); - if (m_directory) + if (m_directory && m_directory != g_slash_only) s->PutChar('/'); m_filename.Dump(s); } @@ -705,13 +706,14 @@ FileSpec::GetPath(char *path, size_t path_max_len) const std::string FileSpec::GetPath (void) const { + static ConstString g_slash_only ("/"); std::string path; const char *dirname = m_directory.GetCString(); const char *filename = m_filename.GetCString(); if (dirname) { path.append (dirname); - if (filename) + if (filename && m_directory != g_slash_only) path.append ("/"); } if (filename) |