forked from OSchip/llvm-project
Change Module::RemapPath to use StringRef.
llvm-svn: 282277
This commit is contained in:
parent
380cd88cfd
commit
a498f0ec93
|
@ -27,7 +27,9 @@
|
|||
#include "lldb/Symbol/TypeSystem.h"
|
||||
#include "lldb/Target/PathMappingList.h"
|
||||
#include "lldb/lldb-forward.h"
|
||||
|
||||
#include "llvm/ADT/DenseSet.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
||||
|
@ -953,7 +955,8 @@ public:
|
|||
/// /b true if \a path was successfully located and \a new_path
|
||||
/// is filled in with a new source path, \b false otherwise.
|
||||
//------------------------------------------------------------------
|
||||
bool RemapSourceFile(const char *path, std::string &new_path) const;
|
||||
bool RemapSourceFile(llvm::StringRef path, std::string &new_path) const;
|
||||
bool RemapSourceFile(const char *, std::string &) const = delete;
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
/// @class LookupInfo Module.h "lldb/Core/Module.h"
|
||||
|
|
|
@ -87,7 +87,8 @@ public:
|
|||
/// /b true if \a path was successfully located and \a new_path
|
||||
/// is filled in with a new source path, \b false otherwise.
|
||||
//------------------------------------------------------------------
|
||||
bool RemapPath(const char *path, std::string &new_path) const;
|
||||
bool RemapPath(llvm::StringRef path, std::string &new_path) const;
|
||||
bool RemapPath(const char *, std::string &) const = delete;
|
||||
|
||||
bool ReverseRemapPath(const ConstString &path, ConstString &new_path) const;
|
||||
|
||||
|
|
|
@ -1635,7 +1635,8 @@ bool Module::FindSourceFile(const FileSpec &orig_spec,
|
|||
return m_source_mappings.FindFile(orig_spec, new_spec);
|
||||
}
|
||||
|
||||
bool Module::RemapSourceFile(const char *path, std::string &new_path) const {
|
||||
bool Module::RemapSourceFile(llvm::StringRef path,
|
||||
std::string &new_path) const {
|
||||
std::lock_guard<std::recursive_mutex> guard(m_mutex);
|
||||
return m_source_mappings.RemapPath(path, new_path);
|
||||
}
|
||||
|
|
|
@ -462,7 +462,7 @@ bool DWARFDebugLine::ParseSupportFiles(
|
|||
|
||||
for (uint32_t file_idx = 1;
|
||||
prologue.GetFile(file_idx, cu_comp_dir, file_spec); ++file_idx) {
|
||||
if (module_sp->RemapSourceFile(file_spec.GetCString(), remapped_file))
|
||||
if (module_sp->RemapSourceFile(file_spec.GetPath(), remapped_file))
|
||||
file_spec.SetFile(remapped_file, false);
|
||||
support_files.Append(file_spec);
|
||||
}
|
||||
|
|
|
@ -746,7 +746,7 @@ lldb::CompUnitSP SymbolFileDWARF::ParseCompileUnit(DWARFCompileUnit *dwarf_cu,
|
|||
}
|
||||
|
||||
std::string remapped_file;
|
||||
if (module_sp->RemapSourceFile(cu_file_spec.GetCString(),
|
||||
if (module_sp->RemapSourceFile(cu_file_spec.GetPath(),
|
||||
remapped_file))
|
||||
cu_file_spec.SetFile(remapped_file, false);
|
||||
}
|
||||
|
|
|
@ -136,7 +136,8 @@ void PathMappingList::Clear(bool notify) {
|
|||
bool PathMappingList::RemapPath(const ConstString &path,
|
||||
ConstString &new_path) const {
|
||||
const char *path_cstr = path.GetCString();
|
||||
|
||||
// CLEANUP: Convert this function to use StringRefs internally instead
|
||||
// of raw c-strings.
|
||||
if (!path_cstr)
|
||||
return false;
|
||||
|
||||
|
@ -154,19 +155,19 @@ bool PathMappingList::RemapPath(const ConstString &path,
|
|||
return false;
|
||||
}
|
||||
|
||||
bool PathMappingList::RemapPath(const char *path, std::string &new_path) const {
|
||||
if (m_pairs.empty() || path == nullptr || path[0] == '\0')
|
||||
bool PathMappingList::RemapPath(llvm::StringRef path,
|
||||
std::string &new_path) const {
|
||||
if (m_pairs.empty() || path.empty())
|
||||
return false;
|
||||
|
||||
const_iterator pos, end = m_pairs.end();
|
||||
for (pos = m_pairs.begin(); pos != end; ++pos) {
|
||||
const size_t prefix_len = pos->first.GetLength();
|
||||
if (!path.consume_front(pos->first.GetStringRef()))
|
||||
continue;
|
||||
|
||||
if (::strncmp(pos->first.GetCString(), path, prefix_len) == 0) {
|
||||
new_path = pos->second.GetCString();
|
||||
new_path.append(path + prefix_len);
|
||||
return true;
|
||||
}
|
||||
new_path = pos->second.GetStringRef();
|
||||
new_path.append(path);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue