]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/portable/MemMang/heap_5.c
Continued to work on the MQTT demo project.
[freertos] / FreeRTOS / Source / portable / MemMang / heap_5.c
index 614210edf3e5f0c01efedc17325aec740f0e9b2b..cf814d116afec2e5401fa030facc3f9bf0b8db21 100644 (file)
@@ -490,8 +490,8 @@ const HeapRegion_t *pxHeapRegion;
 \r
 void vPortGetHeapStats( HeapStats_t *pxHeapStats )\r
 {\r
-       BlockLink_t *pxBlock;\r
-       size_t xBlocks = 0, xMaxSize = 0, xMinSize = 0;\r
+BlockLink_t *pxBlock;\r
+size_t xBlocks = 0, xMaxSize = 0, xMinSize = portMAX_DELAY; /* portMAX_DELAY used as a portable way of getting the maximum value. */\r
 \r
        vTaskSuspendAll();\r
        {\r
@@ -512,9 +512,15 @@ void vPortGetHeapStats( HeapStats_t *pxHeapStats )
                                        xMaxSize = pxBlock->xBlockSize;\r
                                }\r
 \r
-                               if( pxBlock->xBlockSize < xMinSize )\r
+                               /* Heap five will have a zero sized block at the end of each\r
+                               each region - the block is only used to link to the next\r
+                               heap region so it not a real block. */\r
+                               if( pxBlock->xBlockSize != 0 )\r
                                {\r
-                                       xMinSize = pxBlock->xBlockSize;\r
+                                       if( pxBlock->xBlockSize < xMinSize )\r
+                                       {\r
+                                               xMinSize = pxBlock->xBlockSize;\r
+                                       }\r
                                }\r
 \r
                                /* Move to the next block in the chain until the last block is\r