From 052d86fa9c4a7763c03f55e00fe0a6aeb2f9abb6 Mon Sep 17 00:00:00 2001 From: SharafMohamed Date: Thu, 5 Dec 2024 10:34:01 -0500 Subject: [PATCH] Update get_parent_id to clarify its unsafe and suppress warning. --- src/log_surgeon/finite_automata/PrefixTree.cpp | 2 +- src/log_surgeon/finite_automata/PrefixTree.hpp | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/log_surgeon/finite_automata/PrefixTree.cpp b/src/log_surgeon/finite_automata/PrefixTree.cpp index bf0705c8..4a652346 100644 --- a/src/log_surgeon/finite_automata/PrefixTree.cpp +++ b/src/log_surgeon/finite_automata/PrefixTree.cpp @@ -13,7 +13,7 @@ auto PrefixTree::get_reversed_positions(id_t const node_id) const -> std::vector auto current_node{m_nodes[node_id]}; while (false == current_node.is_root()) { reversed_positions.push_back(current_node.get_position()); - current_node = m_nodes[current_node.get_parent_node_id().value()]; + current_node = m_nodes[current_node.get_parent_id_unsafe()]; } return reversed_positions; } diff --git a/src/log_surgeon/finite_automata/PrefixTree.hpp b/src/log_surgeon/finite_automata/PrefixTree.hpp index b3ebfa2a..ab88d805 100644 --- a/src/log_surgeon/finite_automata/PrefixTree.hpp +++ b/src/log_surgeon/finite_automata/PrefixTree.hpp @@ -59,14 +59,15 @@ class PrefixTree { private: class Node { public: - Node(std::optional const parent_node_id, position_t const position) - : m_parent_node_id{parent_node_id}, + Node(std::optional const parent_id, position_t const position) + : m_parent_id{parent_id}, m_position{position} {} - [[nodiscard]] auto is_root() const -> bool { return false == m_parent_node_id.has_value(); } + [[nodiscard]] auto is_root() const -> bool { return false == m_parent_id.has_value(); } - [[nodiscard]] auto get_parent_node_id() const -> std::optional { - return m_parent_node_id; + [[nodiscard]] auto get_parent_id_unsafe() const -> id_t { + // NOLINTNEXTLINE(bugprone-unchecked-optional-access) + return m_parent_id.value(); } auto set_position(position_t const position) -> void { m_position = position; } @@ -74,7 +75,7 @@ class PrefixTree { [[nodiscard]] auto get_position() const -> position_t { return m_position; } private: - std::optional m_parent_node_id; + std::optional m_parent_id; position_t m_position; };