Heap allocate the drivetrain to preserve stack
We were overflowing the stack because the drivetrain code had grown to
use enough memory to cause problems. Switch to heap allocating the
object since it can be pre-allocated regardless.
Change-Id: I5264ea976239174dd86302b065e9ea5e27321424
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/y2012/control_loops/drivetrain/drivetrain_main.cc b/y2012/control_loops/drivetrain/drivetrain_main.cc
index 050f00e..8665e91 100644
--- a/y2012/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2012/control_loops/drivetrain/drivetrain_main.cc
@@ -1,6 +1,7 @@
-#include "aos/init.h"
+#include <memory>
#include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
#include "frc971/control_loops/drivetrain/drivetrain.h"
#include "y2012/control_loops/drivetrain/drivetrain_base.h"
@@ -15,7 +16,7 @@
::aos::ShmEventLoop event_loop(&config.message());
::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
&event_loop, ::y2012::control_loops::drivetrain::GetDrivetrainConfig());
- DrivetrainLoop drivetrain(
+ std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
::y2012::control_loops::drivetrain::GetDrivetrainConfig(), &event_loop,
&localizer);
diff --git a/y2014/control_loops/drivetrain/drivetrain_main.cc b/y2014/control_loops/drivetrain/drivetrain_main.cc
index 8367ec1..19b8e70 100644
--- a/y2014/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2014/control_loops/drivetrain/drivetrain_main.cc
@@ -1,6 +1,7 @@
-#include "aos/init.h"
+#include <memory>
#include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
#include "frc971/control_loops/drivetrain/drivetrain.h"
#include "y2014/control_loops/drivetrain/drivetrain_base.h"
@@ -15,8 +16,8 @@
::aos::ShmEventLoop event_loop(&config.message());
::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
&event_loop, ::y2014::control_loops::GetDrivetrainConfig());
- DrivetrainLoop drivetrain(::y2014::control_loops::GetDrivetrainConfig(),
- &event_loop, &localizer);
+ std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
+ ::y2014::control_loops::GetDrivetrainConfig(), &event_loop, &localizer);
event_loop.Run();
diff --git a/y2014_bot3/control_loops/drivetrain/drivetrain_main.cc b/y2014_bot3/control_loops/drivetrain/drivetrain_main.cc
index 1b7bda1..7c1486d 100644
--- a/y2014_bot3/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2014_bot3/control_loops/drivetrain/drivetrain_main.cc
@@ -1,6 +1,7 @@
-#include "aos/init.h"
+#include <memory>
#include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
#include "frc971/control_loops/drivetrain/drivetrain.h"
#include "y2014_bot3/control_loops/drivetrain/drivetrain_base.h"
@@ -16,7 +17,7 @@
::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
&event_loop,
::y2014_bot3::control_loops::drivetrain::GetDrivetrainConfig());
- DrivetrainLoop drivetrain(
+ std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
::y2014_bot3::control_loops::drivetrain::GetDrivetrainConfig(),
&event_loop, &localizer);
diff --git a/y2016/control_loops/drivetrain/drivetrain_main.cc b/y2016/control_loops/drivetrain/drivetrain_main.cc
index 3c60a63..7edcde5 100644
--- a/y2016/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2016/control_loops/drivetrain/drivetrain_main.cc
@@ -1,6 +1,7 @@
-#include "aos/init.h"
+#include <memory>
#include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
#include "frc971/control_loops/drivetrain/drivetrain.h"
#include "y2016/control_loops/drivetrain/drivetrain_base.h"
@@ -15,7 +16,7 @@
::aos::ShmEventLoop event_loop(&config.message());
::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
&event_loop, ::y2016::control_loops::drivetrain::GetDrivetrainConfig());
- DrivetrainLoop drivetrain(
+ std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
::y2016::control_loops::drivetrain::GetDrivetrainConfig(), &event_loop,
&localizer);
diff --git a/y2017/control_loops/drivetrain/drivetrain_main.cc b/y2017/control_loops/drivetrain/drivetrain_main.cc
index 444838c..4db7b95 100644
--- a/y2017/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2017/control_loops/drivetrain/drivetrain_main.cc
@@ -1,6 +1,7 @@
-#include "aos/init.h"
+#include <memory>
#include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
#include "frc971/control_loops/drivetrain/drivetrain.h"
#include "y2017/control_loops/drivetrain/drivetrain_base.h"
@@ -15,7 +16,7 @@
::aos::ShmEventLoop event_loop(&config.message());
::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
&event_loop, ::y2017::control_loops::drivetrain::GetDrivetrainConfig());
- DrivetrainLoop drivetrain(
+ std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
::y2017::control_loops::drivetrain::GetDrivetrainConfig(), &event_loop,
&localizer);
diff --git a/y2018/control_loops/drivetrain/drivetrain_main.cc b/y2018/control_loops/drivetrain/drivetrain_main.cc
index ad1d9bd..461fd34 100644
--- a/y2018/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2018/control_loops/drivetrain/drivetrain_main.cc
@@ -1,6 +1,7 @@
-#include "aos/init.h"
+#include <memory>
#include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
#include "frc971/control_loops/drivetrain/drivetrain.h"
#include "y2018/control_loops/drivetrain/drivetrain_base.h"
@@ -15,7 +16,7 @@
::aos::ShmEventLoop event_loop(&config.message());
::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
&event_loop, ::y2018::control_loops::drivetrain::GetDrivetrainConfig());
- DrivetrainLoop drivetrain(
+ std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
::y2018::control_loops::drivetrain::GetDrivetrainConfig(), &event_loop,
&localizer);
diff --git a/y2019/control_loops/drivetrain/drivetrain_main.cc b/y2019/control_loops/drivetrain/drivetrain_main.cc
index 5641d1d..a45db0c 100644
--- a/y2019/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2019/control_loops/drivetrain/drivetrain_main.cc
@@ -1,6 +1,7 @@
-#include "aos/init.h"
+#include <memory>
#include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
#include "frc971/control_loops/drivetrain/drivetrain.h"
#include "y2019/control_loops/drivetrain/drivetrain_base.h"
#include "y2019/control_loops/drivetrain/event_loop_localizer.h"
@@ -16,7 +17,7 @@
::aos::ShmEventLoop event_loop(&config.message());
::y2019::control_loops::drivetrain::EventLoopLocalizer localizer(
&event_loop, ::y2019::control_loops::drivetrain::GetDrivetrainConfig());
- DrivetrainLoop drivetrain(
+ std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
::y2019::control_loops::drivetrain::GetDrivetrainConfig(), &event_loop,
&localizer);
diff --git a/y2020/control_loops/drivetrain/drivetrain_main.cc b/y2020/control_loops/drivetrain/drivetrain_main.cc
index e73c023..dec9118 100644
--- a/y2020/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2020/control_loops/drivetrain/drivetrain_main.cc
@@ -1,3 +1,5 @@
+#include <memory>
+
#include "aos/events/shm_event_loop.h"
#include "aos/init.h"
#include "frc971/control_loops/drivetrain/drivetrain.h"
@@ -15,7 +17,7 @@
::aos::ShmEventLoop event_loop(&config.message());
::y2020::control_loops::drivetrain::Localizer localizer(
&event_loop, ::y2020::control_loops::drivetrain::GetDrivetrainConfig());
- DrivetrainLoop drivetrain(
+ std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
::y2020::control_loops::drivetrain::GetDrivetrainConfig(), &event_loop,
&localizer);
diff --git a/y2021_bot3/control_loops/drivetrain/drivetrain_main.cc b/y2021_bot3/control_loops/drivetrain/drivetrain_main.cc
index 0fef75f..f79846e 100644
--- a/y2021_bot3/control_loops/drivetrain/drivetrain_main.cc
+++ b/y2021_bot3/control_loops/drivetrain/drivetrain_main.cc
@@ -1,3 +1,5 @@
+#include <memory>
+
#include "aos/events/shm_event_loop.h"
#include "aos/init.h"
#include "frc971/control_loops/drivetrain/drivetrain.h"
@@ -15,7 +17,7 @@
::frc971::control_loops::drivetrain::DeadReckonEkf localizer(
&event_loop,
::y2021_bot3::control_loops::drivetrain::GetDrivetrainConfig());
- DrivetrainLoop drivetrain(
+ std::unique_ptr<DrivetrainLoop> drivetrain = std::make_unique<DrivetrainLoop>(
::y2021_bot3::control_loops::drivetrain::GetDrivetrainConfig(),
&event_loop, &localizer);