diff options
-rw-r--r-- | DevTools/Inspector/RemoteObjectGraphModel.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/DevTools/Inspector/RemoteObjectGraphModel.cpp b/DevTools/Inspector/RemoteObjectGraphModel.cpp index 2c9a0c1910..c30f4e7cd4 100644 --- a/DevTools/Inspector/RemoteObjectGraphModel.cpp +++ b/DevTools/Inspector/RemoteObjectGraphModel.cpp @@ -36,8 +36,19 @@ GModelIndex RemoteObjectGraphModel::parent_index(const GModelIndex& index) const auto& remote_object = *static_cast<RemoteObject*>(index.internal_data()); if (!remote_object.parent) return {}; - for (int row = 0; row < remote_object.parent->children.size(); ++row) { - if (&remote_object.parent->children[row] == &remote_object) + + // NOTE: If the parent has no parent, it's a root, so we have to look among the remote roots. + if (!remote_object.parent->parent) { + for (int row = 0; row < m_process.roots().size(); ++row) { + if (&m_process.roots()[row] == remote_object.parent) + return create_index(row, 0, remote_object.parent); + } + ASSERT_NOT_REACHED(); + return {}; + } + + for (int row = 0; row < remote_object.parent->parent->children.size(); ++row) { + if (&remote_object.parent->parent->children[row] == remote_object.parent) return create_index(row, 0, remote_object.parent); } |