Hi, Recent commit supposedly silenced warnings in mm_heap, in fact it botched mm_mallinfo() assertions completely. Attached patch fixes this.
Best Regards, Juha Niskanen
From 0639469819648a33d37694d6b8f5fadc25e3fa6f Mon Sep 17 00:00:00 2001 From: Juha Niskanen <juha.niska...@haltian.com> Date: Mon, 17 Feb 2020 11:12:40 +0200 Subject: [PATCH] mm/mm_heap/mm_mallinfo.c: fix assertion broken in 312ea9f9 --- mm/mm_heap/mm_mallinfo.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mm/mm_heap/mm_mallinfo.c b/mm/mm_heap/mm_mallinfo.c index dd980d1..9715aaf 100644 --- a/mm/mm_heap/mm_mallinfo.c +++ b/mm/mm_heap/mm_mallinfo.c @@ -61,7 +61,7 @@ int mm_mallinfo(FAR struct mm_heap_s *heap, FAR struct mallinfo *info) { FAR struct mm_allocnode_s *node; #ifdef CONFIG_DEBUG_ASSERTIONS - FAR struct mm_allocnode_s *prev = NULL; + FAR struct mm_allocnode_s *prev; #endif size_t mxordblk = 0; int ordblks = 0; /* Number of non-inuse chunks */ @@ -81,6 +81,9 @@ int mm_mallinfo(FAR struct mm_heap_s *heap, FAR struct mallinfo *info) for (region = 0; region < heap->mm_nregions; region++) #endif { +#ifdef CONFIG_DEBUG_ASSERTIONS + prev = NULL; +#endif /* Visit each node in the region * Retake the semaphore for each region to reduce latencies */ @@ -124,11 +127,11 @@ int mm_mallinfo(FAR struct mm_heap_s *heap, FAR struct mallinfo *info) mxordblk = node->size; } } + DEBUGASSERT(prev == NULL || + prev->size == (node->preceding & ~MM_ALLOC_BIT)); #ifdef CONFIG_DEBUG_ASSERTIONS prev = node; #endif - DEBUGASSERT(prev == NULL || - prev->size == (node->preceding & ~MM_ALLOC_BIT)); } minfo("region=%d node=%p heapend=%p\n", -- 2.7.4