summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/PathMappingList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Target/PathMappingList.cpp')
-rw-r--r--lldb/source/Target/PathMappingList.cpp488
1 files changed, 211 insertions, 277 deletions
diff --git a/lldb/source/Target/PathMappingList.cpp b/lldb/source/Target/PathMappingList.cpp
index bc1334aca46..4df3a185471 100644
--- a/lldb/source/Target/PathMappingList.cpp
+++ b/lldb/source/Target/PathMappingList.cpp
@@ -26,331 +26,265 @@ using namespace lldb_private;
//----------------------------------------------------------------------
// PathMappingList constructor
//----------------------------------------------------------------------
-PathMappingList::PathMappingList () :
- m_pairs(),
- m_callback(nullptr),
- m_callback_baton(nullptr),
- m_mod_id(0)
-{
-}
+PathMappingList::PathMappingList()
+ : m_pairs(), m_callback(nullptr), m_callback_baton(nullptr), m_mod_id(0) {}
-PathMappingList::PathMappingList (ChangedCallback callback,
- void *callback_baton) :
- m_pairs (),
- m_callback (callback),
- m_callback_baton (callback_baton),
- m_mod_id (0)
-{
-}
+PathMappingList::PathMappingList(ChangedCallback callback, void *callback_baton)
+ : m_pairs(), m_callback(callback), m_callback_baton(callback_baton),
+ m_mod_id(0) {}
-PathMappingList::PathMappingList (const PathMappingList &rhs) :
- m_pairs(rhs.m_pairs),
- m_callback(nullptr),
- m_callback_baton(nullptr),
- m_mod_id(0)
-{
-}
+PathMappingList::PathMappingList(const PathMappingList &rhs)
+ : m_pairs(rhs.m_pairs), m_callback(nullptr), m_callback_baton(nullptr),
+ m_mod_id(0) {}
-const PathMappingList &
-PathMappingList::operator =(const PathMappingList &rhs)
-{
- if (this != &rhs)
- {
- m_pairs = rhs.m_pairs;
- m_callback = nullptr;
- m_callback_baton = nullptr;
- m_mod_id = rhs.m_mod_id;
- }
- return *this;
+const PathMappingList &PathMappingList::operator=(const PathMappingList &rhs) {
+ if (this != &rhs) {
+ m_pairs = rhs.m_pairs;
+ m_callback = nullptr;
+ m_callback_baton = nullptr;
+ m_mod_id = rhs.m_mod_id;
+ }
+ return *this;
}
PathMappingList::~PathMappingList() = default;
-void
-PathMappingList::Append (const ConstString &path,
- const ConstString &replacement,
- bool notify)
-{
- ++m_mod_id;
- m_pairs.push_back(pair(path, replacement));
- if (notify && m_callback)
- m_callback (*this, m_callback_baton);
+void PathMappingList::Append(const ConstString &path,
+ const ConstString &replacement, bool notify) {
+ ++m_mod_id;
+ m_pairs.push_back(pair(path, replacement));
+ if (notify && m_callback)
+ m_callback(*this, m_callback_baton);
}
-void
-PathMappingList::Append (const PathMappingList &rhs, bool notify)
-{
- ++m_mod_id;
- if (!rhs.m_pairs.empty())
- {
- const_iterator pos, end = rhs.m_pairs.end();
- for (pos = rhs.m_pairs.begin(); pos != end; ++pos)
- m_pairs.push_back(*pos);
- if (notify && m_callback)
- m_callback (*this, m_callback_baton);
- }
+void PathMappingList::Append(const PathMappingList &rhs, bool notify) {
+ ++m_mod_id;
+ if (!rhs.m_pairs.empty()) {
+ const_iterator pos, end = rhs.m_pairs.end();
+ for (pos = rhs.m_pairs.begin(); pos != end; ++pos)
+ m_pairs.push_back(*pos);
+ if (notify && m_callback)
+ m_callback(*this, m_callback_baton);
+ }
}
-void
-PathMappingList::Insert (const ConstString &path,
- const ConstString &replacement,
- uint32_t index,
- bool notify)
-{
- ++m_mod_id;
- iterator insert_iter;
- if (index >= m_pairs.size())
- insert_iter = m_pairs.end();
- else
- insert_iter = m_pairs.begin() + index;
- m_pairs.insert(insert_iter, pair(path, replacement));
- if (notify && m_callback)
- m_callback (*this, m_callback_baton);
+void PathMappingList::Insert(const ConstString &path,
+ const ConstString &replacement, uint32_t index,
+ bool notify) {
+ ++m_mod_id;
+ iterator insert_iter;
+ if (index >= m_pairs.size())
+ insert_iter = m_pairs.end();
+ else
+ insert_iter = m_pairs.begin() + index;
+ m_pairs.insert(insert_iter, pair(path, replacement));
+ if (notify && m_callback)
+ m_callback(*this, m_callback_baton);
}
-bool
-PathMappingList::Replace (const ConstString &path,
- const ConstString &replacement,
- uint32_t index,
- bool notify)
-{
- iterator insert_iter;
- if (index >= m_pairs.size())
- return false;
- ++m_mod_id;
- m_pairs[index] = pair(path, replacement);
- if (notify && m_callback)
- m_callback (*this, m_callback_baton);
- return true;
+bool PathMappingList::Replace(const ConstString &path,
+ const ConstString &replacement, uint32_t index,
+ bool notify) {
+ iterator insert_iter;
+ if (index >= m_pairs.size())
+ return false;
+ ++m_mod_id;
+ m_pairs[index] = pair(path, replacement);
+ if (notify && m_callback)
+ m_callback(*this, m_callback_baton);
+ return true;
}
-bool
-PathMappingList::Remove (size_t index, bool notify)
-{
- if (index >= m_pairs.size())
- return false;
+bool PathMappingList::Remove(size_t index, bool notify) {
+ if (index >= m_pairs.size())
+ return false;
- ++m_mod_id;
- iterator iter = m_pairs.begin() + index;
- m_pairs.erase(iter);
- if (notify && m_callback)
- m_callback (*this, m_callback_baton);
- return true;
+ ++m_mod_id;
+ iterator iter = m_pairs.begin() + index;
+ m_pairs.erase(iter);
+ if (notify && m_callback)
+ m_callback(*this, m_callback_baton);
+ return true;
}
// For clients which do not need the pair index dumped, pass a pair_index >= 0
// to only dump the indicated pair.
-void
-PathMappingList::Dump (Stream *s, int pair_index)
-{
- unsigned int numPairs = m_pairs.size();
-
- if (pair_index < 0)
- {
- unsigned int index;
- for (index = 0; index < numPairs; ++index)
- s->Printf("[%d] \"%s\" -> \"%s\"\n",
- index, m_pairs[index].first.GetCString(), m_pairs[index].second.GetCString());
- }
- else
- {
- if (static_cast<unsigned int>(pair_index) < numPairs)
- s->Printf("%s -> %s",
- m_pairs[pair_index].first.GetCString(), m_pairs[pair_index].second.GetCString());
- }
+void PathMappingList::Dump(Stream *s, int pair_index) {
+ unsigned int numPairs = m_pairs.size();
+
+ if (pair_index < 0) {
+ unsigned int index;
+ for (index = 0; index < numPairs; ++index)
+ s->Printf("[%d] \"%s\" -> \"%s\"\n", index,
+ m_pairs[index].first.GetCString(),
+ m_pairs[index].second.GetCString());
+ } else {
+ if (static_cast<unsigned int>(pair_index) < numPairs)
+ s->Printf("%s -> %s", m_pairs[pair_index].first.GetCString(),
+ m_pairs[pair_index].second.GetCString());
+ }
}
-void
-PathMappingList::Clear (bool notify)
-{
- if (!m_pairs.empty())
- ++m_mod_id;
- m_pairs.clear();
- if (notify && m_callback)
- m_callback (*this, m_callback_baton);
+void PathMappingList::Clear(bool notify) {
+ if (!m_pairs.empty())
+ ++m_mod_id;
+ m_pairs.clear();
+ if (notify && m_callback)
+ m_callback(*this, m_callback_baton);
}
-bool
-PathMappingList::RemapPath (const ConstString &path, ConstString &new_path) const
-{
- const char *path_cstr = path.GetCString();
-
- if (!path_cstr)
- return false;
-
- const_iterator pos, end = m_pairs.end();
- for (pos = m_pairs.begin(); pos != end; ++pos)
- {
- const size_t prefixLen = pos->first.GetLength();
-
- if (::strncmp (pos->first.GetCString(), path_cstr, prefixLen) == 0)
- {
- std::string new_path_str (pos->second.GetCString());
- new_path_str.append(path.GetCString() + prefixLen);
- new_path.SetCString(new_path_str.c_str());
- return true;
- }
- }
+bool PathMappingList::RemapPath(const ConstString &path,
+ ConstString &new_path) const {
+ const char *path_cstr = path.GetCString();
+
+ if (!path_cstr)
return false;
-}
-bool
-PathMappingList::RemapPath (const char *path, std::string &new_path) const
-{
- if (m_pairs.empty() || path == nullptr || path[0] == '\0')
- return false;
+ const_iterator pos, end = m_pairs.end();
+ for (pos = m_pairs.begin(); pos != end; ++pos) {
+ const size_t prefixLen = pos->first.GetLength();
- const_iterator pos, end = m_pairs.end();
- for (pos = m_pairs.begin(); pos != end; ++pos)
- {
- const size_t prefix_len = pos->first.GetLength();
-
- if (::strncmp (pos->first.GetCString(), path, prefix_len) == 0)
- {
- new_path = pos->second.GetCString();
- new_path.append(path + prefix_len);
- return true;
- }
+ if (::strncmp(pos->first.GetCString(), path_cstr, prefixLen) == 0) {
+ std::string new_path_str(pos->second.GetCString());
+ new_path_str.append(path.GetCString() + prefixLen);
+ new_path.SetCString(new_path_str.c_str());
+ return true;
}
- return false;
+ }
+ return false;
}
-bool
-PathMappingList::ReverseRemapPath (const ConstString &path, ConstString &new_path) const
-{
- const char *path_cstr = path.GetCString();
- if (!path_cstr)
- return false;
-
- for (const auto& it : m_pairs)
- {
- // FIXME: This should be using FileSpec API's to do the path appending.
- const size_t prefixLen = it.second.GetLength();
- if (::strncmp (it.second.GetCString(), path_cstr, prefixLen) == 0)
- {
- std::string new_path_str (it.first.GetCString());
- new_path_str.append(path.GetCString() + prefixLen);
- new_path.SetCString(new_path_str.c_str());
- return true;
- }
+bool PathMappingList::RemapPath(const char *path, std::string &new_path) const {
+ if (m_pairs.empty() || path == nullptr || path[0] == '\0')
+ 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 (::strncmp(pos->first.GetCString(), path, prefix_len) == 0) {
+ new_path = pos->second.GetCString();
+ new_path.append(path + prefix_len);
+ return true;
}
+ }
+ return false;
+}
+
+bool PathMappingList::ReverseRemapPath(const ConstString &path,
+ ConstString &new_path) const {
+ const char *path_cstr = path.GetCString();
+ if (!path_cstr)
return false;
+
+ for (const auto &it : m_pairs) {
+ // FIXME: This should be using FileSpec API's to do the path appending.
+ const size_t prefixLen = it.second.GetLength();
+ if (::strncmp(it.second.GetCString(), path_cstr, prefixLen) == 0) {
+ std::string new_path_str(it.first.GetCString());
+ new_path_str.append(path.GetCString() + prefixLen);
+ new_path.SetCString(new_path_str.c_str());
+ return true;
+ }
+ }
+ return false;
}
-bool
-PathMappingList::FindFile (const FileSpec &orig_spec, FileSpec &new_spec) const
-{
- if (!m_pairs.empty())
- {
- char orig_path[PATH_MAX];
- const size_t orig_path_len = orig_spec.GetPath (orig_path, sizeof(orig_path));
- if (orig_path_len > 0)
- {
- const_iterator pos, end = m_pairs.end();
- for (pos = m_pairs.begin(); pos != end; ++pos)
- {
- const size_t prefix_len = pos->first.GetLength();
-
- if (orig_path_len >= prefix_len)
- {
- if (::strncmp (pos->first.GetCString(), orig_path, prefix_len) == 0)
- {
- new_spec.SetFile(pos->second.GetCString(), false);
- new_spec.AppendPathComponent(orig_path+prefix_len);
- if (new_spec.Exists())
- return true;
- }
- }
- }
+bool PathMappingList::FindFile(const FileSpec &orig_spec,
+ FileSpec &new_spec) const {
+ if (!m_pairs.empty()) {
+ char orig_path[PATH_MAX];
+ const size_t orig_path_len =
+ orig_spec.GetPath(orig_path, sizeof(orig_path));
+ if (orig_path_len > 0) {
+ const_iterator pos, end = m_pairs.end();
+ for (pos = m_pairs.begin(); pos != end; ++pos) {
+ const size_t prefix_len = pos->first.GetLength();
+
+ if (orig_path_len >= prefix_len) {
+ if (::strncmp(pos->first.GetCString(), orig_path, prefix_len) == 0) {
+ new_spec.SetFile(pos->second.GetCString(), false);
+ new_spec.AppendPathComponent(orig_path + prefix_len);
+ if (new_spec.Exists())
+ return true;
+ }
}
+ }
}
- new_spec.Clear();
- return false;
+ }
+ new_spec.Clear();
+ return false;
}
-bool
-PathMappingList::Replace (const ConstString &path, const ConstString &new_path, bool notify)
-{
- uint32_t idx = FindIndexForPath (path);
- if (idx < m_pairs.size())
- {
- ++m_mod_id;
- m_pairs[idx].second = new_path;
- if (notify && m_callback)
- m_callback (*this, m_callback_baton);
- return true;
- }
- return false;
+bool PathMappingList::Replace(const ConstString &path,
+ const ConstString &new_path, bool notify) {
+ uint32_t idx = FindIndexForPath(path);
+ if (idx < m_pairs.size()) {
+ ++m_mod_id;
+ m_pairs[idx].second = new_path;
+ if (notify && m_callback)
+ m_callback(*this, m_callback_baton);
+ return true;
+ }
+ return false;
}
-bool
-PathMappingList::Remove (const ConstString &path, bool notify)
-{
- iterator pos = FindIteratorForPath (path);
- if (pos != m_pairs.end())
- {
- ++m_mod_id;
- m_pairs.erase (pos);
- if (notify && m_callback)
- m_callback (*this, m_callback_baton);
- return true;
- }
- return false;
+bool PathMappingList::Remove(const ConstString &path, bool notify) {
+ iterator pos = FindIteratorForPath(path);
+ if (pos != m_pairs.end()) {
+ ++m_mod_id;
+ m_pairs.erase(pos);
+ if (notify && m_callback)
+ m_callback(*this, m_callback_baton);
+ return true;
+ }
+ return false;
}
PathMappingList::const_iterator
-PathMappingList::FindIteratorForPath (const ConstString &path) const
-{
- const_iterator pos;
- const_iterator begin = m_pairs.begin();
- const_iterator end = m_pairs.end();
-
- for (pos = begin; pos != end; ++pos)
- {
- if (pos->first == path)
- break;
- }
- return pos;
+PathMappingList::FindIteratorForPath(const ConstString &path) const {
+ const_iterator pos;
+ const_iterator begin = m_pairs.begin();
+ const_iterator end = m_pairs.end();
+
+ for (pos = begin; pos != end; ++pos) {
+ if (pos->first == path)
+ break;
+ }
+ return pos;
}
PathMappingList::iterator
-PathMappingList::FindIteratorForPath (const ConstString &path)
-{
- iterator pos;
- iterator begin = m_pairs.begin();
- iterator end = m_pairs.end();
-
- for (pos = begin; pos != end; ++pos)
- {
- if (pos->first == path)
- break;
- }
- return pos;
+PathMappingList::FindIteratorForPath(const ConstString &path) {
+ iterator pos;
+ iterator begin = m_pairs.begin();
+ iterator end = m_pairs.end();
+
+ for (pos = begin; pos != end; ++pos) {
+ if (pos->first == path)
+ break;
+ }
+ return pos;
}
-bool
-PathMappingList::GetPathsAtIndex (uint32_t idx, ConstString &path, ConstString &new_path) const
-{
- if (idx < m_pairs.size())
- {
- path = m_pairs[idx].first;
- new_path = m_pairs[idx].second;
- return true;
- }
- return false;
+bool PathMappingList::GetPathsAtIndex(uint32_t idx, ConstString &path,
+ ConstString &new_path) const {
+ if (idx < m_pairs.size()) {
+ path = m_pairs[idx].first;
+ new_path = m_pairs[idx].second;
+ return true;
+ }
+ return false;
}
-uint32_t
-PathMappingList::FindIndexForPath (const ConstString &path) const
-{
- const_iterator pos;
- const_iterator begin = m_pairs.begin();
- const_iterator end = m_pairs.end();
-
- for (pos = begin; pos != end; ++pos)
- {
- if (pos->first == path)
- return std::distance (begin, pos);
- }
- return UINT32_MAX;
+uint32_t PathMappingList::FindIndexForPath(const ConstString &path) const {
+ const_iterator pos;
+ const_iterator begin = m_pairs.begin();
+ const_iterator end = m_pairs.end();
+
+ for (pos = begin; pos != end; ++pos) {
+ if (pos->first == path)
+ return std::distance(begin, pos);
+ }
+ return UINT32_MAX;
}
OpenPOWER on IntegriCloud