diff --git a/DevTools/ProfileViewer/Profile.cpp b/DevTools/ProfileViewer/Profile.cpp index 2271b710b0..0196635d7c 100644 --- a/DevTools/ProfileViewer/Profile.cpp +++ b/DevTools/ProfileViewer/Profile.cpp @@ -4,7 +4,7 @@ #include #include -Profile::Profile(const JsonArray& json, NonnullRefPtrVector&& roots) +Profile::Profile(const JsonArray& json, Vector>&& roots) : m_json(json) , m_roots(move(roots)) { diff --git a/DevTools/ProfileViewer/Profile.h b/DevTools/ProfileViewer/Profile.h index 8e73b624e2..0b78f82d16 100644 --- a/DevTools/ProfileViewer/Profile.h +++ b/DevTools/ProfileViewer/Profile.h @@ -43,7 +43,7 @@ public: } } auto new_child = ProfileNode::create(symbol, address, offset); - m_children.append(new_child); + add_child(new_child); return new_child; }; @@ -77,12 +77,12 @@ public: GModel& model(); - const NonnullRefPtrVector& roots() const { return m_roots; } + const Vector>& roots() const { return m_roots; } private: - explicit Profile(const JsonArray&, NonnullRefPtrVector&&); + explicit Profile(const JsonArray&, Vector>&&); JsonArray m_json; RefPtr m_model; - NonnullRefPtrVector m_roots; + Vector> m_roots; }; diff --git a/DevTools/ProfileViewer/ProfileModel.cpp b/DevTools/ProfileViewer/ProfileModel.cpp index 8e796d0096..7390e5aa6d 100644 --- a/DevTools/ProfileViewer/ProfileModel.cpp +++ b/DevTools/ProfileViewer/ProfileModel.cpp @@ -19,7 +19,7 @@ GModelIndex ProfileModel::index(int row, int column, const GModelIndex& parent) if (!parent.is_valid()) { if (m_profile.roots().is_empty()) return {}; - return create_index(row, column, &m_profile.roots().at(row)); + return create_index(row, column, m_profile.roots().at(row).ptr()); } auto& remote_parent = *static_cast(parent.internal_data()); return create_index(row, column, remote_parent.children().at(row).ptr()); @@ -33,11 +33,12 @@ GModelIndex ProfileModel::parent_index(const GModelIndex& index) const if (!node.parent()) return {}; - // NOTE: If the parent has no parent, it's a root, so we have to look among the remote roots. + // NOTE: If the parent has no parent, it's a root, so we have to look among the roots. if (!node.parent()->parent()) { for (int row = 0; row < m_profile.roots().size(); ++row) { - if (&m_profile.roots()[row] == node.parent()) + if (m_profile.roots()[row].ptr() == node.parent()) { return create_index(row, 0, node.parent()); + } } ASSERT_NOT_REACHED(); return {};