Switch to shared pointer to hopefully avoid crash

This commit is contained in:
2026-03-30 12:18:41 +02:00
parent 3d8dd3127d
commit 089b630538
4 changed files with 8 additions and 8 deletions

View File

@@ -40,7 +40,7 @@ public:
void initGameElements(); void initGameElements();
void active_elements_cb(ActiveElements::UniquePtr msg); void active_elements_cb(ActiveElements::SharedPtr msg);
private: private:
double last_min_x_, last_min_y_, last_max_x_, last_max_y_; double last_min_x_, last_min_y_, last_max_x_, last_max_y_;
@@ -50,7 +50,7 @@ private:
std::vector<GameElement> game_elements_; std::vector<GameElement> game_elements_;
std::vector<GameElement> static_elements_; std::vector<GameElement> static_elements_;
std::vector<std::string> extra_elements_; std::vector<std::string> extra_elements_;
ActiveElements::UniquePtr active_elements_; ActiveElements::SharedPtr active_elements_;
rclcpp::Subscription<ActiveElements>::SharedPtr active_elements_sub_; rclcpp::Subscription<ActiveElements>::SharedPtr active_elements_sub_;
}; };

View File

@@ -36,7 +36,7 @@ public:
bool isClearable() override { return true; } bool isClearable() override { return true; }
void rival_cb(Rivals::UniquePtr msg); void rival_cb(Rivals::SharedPtr msg);
private: private:
double last_min_x_, last_min_y_, last_max_x_, last_max_y_; double last_min_x_, last_min_y_, last_max_x_, last_max_y_;
@@ -45,7 +45,7 @@ private:
uint debounce_ = 0; uint debounce_ = 0;
Rivals::UniquePtr rivals_; Rivals::SharedPtr rivals_;
rclcpp::Subscription<Rivals>::SharedPtr rival_sub_; rclcpp::Subscription<Rivals>::SharedPtr rival_sub_;

View File

@@ -44,9 +44,9 @@ void GameElementLayer::deactivate()
extra_elements_.clear(); extra_elements_.clear();
} }
void GameElementLayer::active_elements_cb(ActiveElements::UniquePtr msg) void GameElementLayer::active_elements_cb(ActiveElements::SharedPtr msg)
{ {
active_elements_ = std::move(msg); active_elements_ = msg;
} }
void GameElementLayer::updateBounds( void GameElementLayer::updateBounds(

View File

@@ -36,10 +36,10 @@ void RivalLayer::deactivate()
rivals_.reset(); rivals_.reset();
} }
void RivalLayer::rival_cb(Rivals::UniquePtr msg) void RivalLayer::rival_cb(Rivals::SharedPtr msg)
{ {
if (msg->point.size() != 0 || debounce_++ > 10) { if (msg->point.size() != 0 || debounce_++ > 10) {
rivals_ = std::move(msg); rivals_ = msg;
debounce_ = 0; debounce_ = 0;
} }
} }