From 7c8cf2e1e2df6ad0f3f07e7948ed232121172866 Mon Sep 17 00:00:00 2001 From: CarlWachter Date: Sat, 23 Sep 2023 11:02:35 +0200 Subject: [PATCH] Asserts on free and alloc --- .vscode/settings.json | 5 +++++ include/sta/rtos/mempool.hpp | 2 +- include/sta/rtos/mempool.tpp | 9 ++++++--- 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..4a67f19 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.tpp": "cpp" + } +} \ No newline at end of file diff --git a/include/sta/rtos/mempool.hpp b/include/sta/rtos/mempool.hpp index e4656a0..1baa1e0 100644 --- a/include/sta/rtos/mempool.hpp +++ b/include/sta/rtos/mempool.hpp @@ -49,7 +49,7 @@ namespace sta * * @param block names the block to free. */ - osStatus_t free(void *block); + void free(void *block); private: osMemoryPoolId_t handle_; /**< CMSIS RTOS2 queue handle */ diff --git a/include/sta/rtos/mempool.tpp b/include/sta/rtos/mempool.tpp index bd3ab29..5dbae60 100644 --- a/include/sta/rtos/mempool.tpp +++ b/include/sta/rtos/mempool.tpp @@ -26,13 +26,16 @@ namespace sta template void * RtosMemPool::alloc(uint32_t timeout /* = osWaitForever */) { - return osMemoryPoolAlloc(handle_, timeout); + void * addr = osMemoryPoolAlloc(handle_, timeout) + STA_ASSERT_MSG(addr != nullptr, "Failed to Alloc RtosMemPool Block"); + return addr; } template - osStatus_t RtosMemPool::free(void * block) + void RtosMemPool::free(void * block) { - return osMemoryPoolFree(handle_, block); + STA_ASSERT_MSG(osMemoryPoolFree(handle_, block) == osOK, + "Failed to Free RtosMemPool Block"); } } // namespace sta