From 4d880e861c478d02398e44e6270addbc320e0b34 Mon Sep 17 00:00:00 2001
From: Khalil Estell <kammce0@gmail.com>
Date: Wed, 24 Jul 2024 18:20:31 -0700
Subject: [PATCH] :bug: Fix breaks with demo building

---
 demos/applications/multi_levels.cpp |  2 +-
 demos/applications/single_level.cpp | 20 --------------------
 demos/platforms/stm32f103r6.cpp     |  6 +-----
 src/control.cpp                     |  4 +++-
 4 files changed, 5 insertions(+), 27 deletions(-)

diff --git a/demos/applications/multi_levels.cpp b/demos/applications/multi_levels.cpp
index 57ac288..aa8fbff 100644
--- a/demos/applications/multi_levels.cpp
+++ b/demos/applications/multi_levels.cpp
@@ -46,7 +46,7 @@ int funct_group6_0();
 
 using signature = int(void);
 
-std::array<signature*, 9> functions = {
+std::array functions{
   &funct_group0_0, &funct_group1_0, &funct_group2_0, &funct_group3_0,
   &funct_group4_0, &funct_group5_0, &funct_group6_0,
 #if 0
diff --git a/demos/applications/single_level.cpp b/demos/applications/single_level.cpp
index 8482f23..436fd90 100644
--- a/demos/applications/single_level.cpp
+++ b/demos/applications/single_level.cpp
@@ -26,9 +26,6 @@ struct error
 std::uint64_t start = 0;
 std::uint64_t end = 0;
 
-std::uint64_t volatile entry_search_start = 0;
-std::uint64_t volatile entry_search_end = 0;
-
 void foo()
 {
   if (value) {
@@ -36,28 +33,11 @@ void foo()
     throw error{ .data = value };
   }
 }
-namespace ke {
-struct index_entry_t
-{
-  uint32_t a;
-  uint32_t b;
-};
-extern index_entry_t const& get_index_entry(std::uint32_t p_program_counter);
-}  // namespace ke
-
-ke::index_entry_t const* global_index = nullptr;
-std::uint64_t volatile search_time = 0;
 
 void application(resource_list& p_resources)
 {
   resources = &p_resources;
 
-  entry_search_start = resources->clock->uptime();
-  global_index = &ke::get_index_entry(reinterpret_cast<std::uint32_t>(&foo));
-  entry_search_end = resources->clock->uptime();
-
-  search_time = entry_search_end - entry_search_start;
-
   try {
     foo();
   } catch (error const& p_error) {
diff --git a/demos/platforms/stm32f103r6.cpp b/demos/platforms/stm32f103r6.cpp
index 557f193..9037694 100644
--- a/demos/platforms/stm32f103r6.cpp
+++ b/demos/platforms/stm32f103r6.cpp
@@ -20,11 +20,7 @@
 resource_list initialize_platform()
 {
   using namespace hal::literals;
-  hal::stm32f1::maximum_speed_using_internal_oscillator();
-
-  auto cpu_frequency = hal::stm32f1::frequency(hal::stm32f1::peripheral::cpu);
-  static hal::cortex_m::dwt_counter dwt_steady_clock(cpu_frequency);
-
+  static hal::cortex_m::dwt_counter dwt_steady_clock(10.0_MHz);
   return {
     .clock = &dwt_steady_clock,
   };
diff --git a/src/control.cpp b/src/control.cpp
index 4b90b76..9e49878 100644
--- a/src/control.cpp
+++ b/src/control.cpp
@@ -56,7 +56,9 @@ class single_exception_allocator : public std::pmr::memory_resource
 {
 public:
   single_exception_allocator() = default;
-  ~single_exception_allocator() = default;
+  virtual ~single_exception_allocator() override
+  {
+  }
 
 private:
   void* do_allocate(std::size_t p_size,