diff --git a/mm/mm_heap/mm_mallinfo.c b/mm/mm_heap/mm_mallinfo.c index dd980d1b23..d13ed6679d 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,12 @@ 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",