diff --git a/hal/include/HAL/handles/DigitalHandleResource.h b/hal/include/HAL/handles/DigitalHandleResource.h index 49d2469396..553db2d641 100644 --- a/hal/include/HAL/handles/DigitalHandleResource.h +++ b/hal/include/HAL/handles/DigitalHandleResource.h @@ -9,8 +9,8 @@ #include +#include #include -#include #include "HAL/Errors.h" #include "HAL/Types.h" @@ -39,23 +39,16 @@ class DigitalHandleResource { public: DigitalHandleResource(const DigitalHandleResource&) = delete; DigitalHandleResource operator=(const DigitalHandleResource&) = delete; - DigitalHandleResource(); + DigitalHandleResource() = default; THandle Allocate(int16_t index, HAL_HandleEnum enumValue, int32_t* status); std::shared_ptr Get(THandle handle, HAL_HandleEnum enumValue); void Free(THandle handle, HAL_HandleEnum enumValue); private: - // Dynamic array to shrink HAL file size. - std::unique_ptr[]> m_structures; - std::unique_ptr m_handleMutexes; + std::array, size> m_structures; + std::array m_handleMutexes; }; -template -DigitalHandleResource::DigitalHandleResource() { - m_structures = std::make_unique[]>(size); - m_handleMutexes = std::make_unique(size); -} - template THandle DigitalHandleResource::Allocate( int16_t index, HAL_HandleEnum enumValue, int32_t* status) { diff --git a/hal/include/HAL/handles/IndexedHandleResource.h b/hal/include/HAL/handles/IndexedHandleResource.h index 341dc8422c..ac321e4b67 100644 --- a/hal/include/HAL/handles/IndexedHandleResource.h +++ b/hal/include/HAL/handles/IndexedHandleResource.h @@ -9,8 +9,8 @@ #include +#include #include -#include #include "HAL/Errors.h" #include "HAL/Types.h" @@ -40,25 +40,16 @@ class IndexedHandleResource { public: IndexedHandleResource(const IndexedHandleResource&) = delete; IndexedHandleResource operator=(const IndexedHandleResource&) = delete; - IndexedHandleResource(); + IndexedHandleResource() = default; THandle Allocate(int16_t index, int32_t* status); std::shared_ptr Get(THandle handle); void Free(THandle handle); private: - // Dynamic array to shrink HAL file size. - std::unique_ptr[]> m_structures; - std::unique_ptr m_handleMutexes; + std::array, size> m_structures; + std::array m_handleMutexes; }; -template -IndexedHandleResource::IndexedHandleResource() { - m_structures = std::make_unique[]>(size); - m_handleMutexes = std::make_unique(size); -} - template THandle IndexedHandleResource::Allocate( diff --git a/hal/include/HAL/handles/LimitedClassedHandleResource.h b/hal/include/HAL/handles/LimitedClassedHandleResource.h index 79869fb527..ccb50fa06f 100644 --- a/hal/include/HAL/handles/LimitedClassedHandleResource.h +++ b/hal/include/HAL/handles/LimitedClassedHandleResource.h @@ -9,8 +9,8 @@ #include +#include #include -#include #include "HAL/Types.h" #include "HAL/cpp/make_unique.h" @@ -39,26 +39,17 @@ class LimitedClassedHandleResource { LimitedClassedHandleResource(const LimitedClassedHandleResource&) = delete; LimitedClassedHandleResource operator=(const LimitedClassedHandleResource&) = delete; - LimitedClassedHandleResource(); + LimitedClassedHandleResource() = default; THandle Allocate(std::shared_ptr toSet); std::shared_ptr Get(THandle handle); void Free(THandle handle); private: - // Dynamic array to shrink HAL file size. - std::unique_ptr[]> m_structures; - std::unique_ptr m_handleMutexes; + std::array, size> m_structures; + std::array m_handleMutexes; priority_mutex m_allocateMutex; }; -template -LimitedClassedHandleResource::LimitedClassedHandleResource() { - m_structures = std::make_unique[]>(size); - m_handleMutexes = std::make_unique(size); -} - template THandle diff --git a/hal/include/HAL/handles/LimitedHandleResource.h b/hal/include/HAL/handles/LimitedHandleResource.h index c8d9f46ac0..0cbdc235b0 100644 --- a/hal/include/HAL/handles/LimitedHandleResource.h +++ b/hal/include/HAL/handles/LimitedHandleResource.h @@ -9,8 +9,8 @@ #include +#include #include -#include #include "HAL/Types.h" #include "HAL/cpp/make_unique.h" @@ -37,26 +37,17 @@ class LimitedHandleResource { public: LimitedHandleResource(const LimitedHandleResource&) = delete; LimitedHandleResource operator=(const LimitedHandleResource&) = delete; - LimitedHandleResource(); + LimitedHandleResource() = default; THandle Allocate(); std::shared_ptr Get(THandle handle); void Free(THandle handle); private: - // Dynamic array to shrink HAL file size. - std::unique_ptr[]> m_structures; - std::unique_ptr m_handleMutexes; + std::array, size> m_structures; + std::array m_handleMutexes; priority_mutex m_allocateMutex; }; -template -LimitedHandleResource::LimitedHandleResource() { - m_structures = std::make_unique[]>(size); - m_handleMutexes = std::make_unique(size); -} - template THandle LimitedHandleResource::Allocate() {