diff --git a/cameraserver/src/main/native/cpp/cameraserver/CameraServer.cpp b/cameraserver/src/main/native/cpp/cameraserver/CameraServer.cpp index 69293bbaac9..91af008b7aa 100644 --- a/cameraserver/src/main/native/cpp/cameraserver/CameraServer.cpp +++ b/cameraserver/src/main/native/cpp/cameraserver/CameraServer.cpp @@ -80,10 +80,12 @@ struct Instance { wpi::DenseMap m_publishers; std::shared_ptr m_publishTable{ nt::NetworkTableInstance::GetDefault().GetTable(kPublishName)}; - cs::VideoListener m_videoListener; + std::vector m_addresses; int m_tableListener; int m_nextPort{CameraServer::kBasePort}; - std::vector m_addresses; + // Listener callback will capture [this], so let's make sure the callback is + // removed before anything else is destroyed. + cs::VideoListener m_videoListener; }; } // namespace