Count allocs without side-effects

At the end of the benchmark program, heap stats are printed, and these
stats will be wrong if we reset counters in the middle.

Also remove the function to reset counters, in order to encourage other
programs to behave correctly as well.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
diff --git a/include/mbedtls/memory_buffer_alloc.h b/include/mbedtls/memory_buffer_alloc.h
index ee1973c..b024162 100644
--- a/include/mbedtls/memory_buffer_alloc.h
+++ b/include/mbedtls/memory_buffer_alloc.h
@@ -99,11 +99,6 @@
 void mbedtls_memory_buffer_alloc_count_get( size_t *alloc_count, size_t *free_count );
 
 /**
- * \brief   Reset alloc/free counters.
- */
-void mbedtls_memory_buffer_alloc_count_reset( void );
-
-/**
  * \brief   Get the peak heap usage so far
  *
  * \param max_used      Peak number of bytes in use or committed. This
diff --git a/library/memory_buffer_alloc.c b/library/memory_buffer_alloc.c
index ddb9595..8c6b442 100644
--- a/library/memory_buffer_alloc.c
+++ b/library/memory_buffer_alloc.c
@@ -528,12 +528,6 @@
     *free_count = heap.free_count;
 }
 
-void mbedtls_memory_buffer_alloc_count_reset( void )
-{
-    heap.alloc_count = 0;
-    heap.free_count = 0;
-}
-
 void mbedtls_memory_buffer_alloc_max_get( size_t *max_used, size_t *max_blocks )
 {
     *max_used   = heap.maximum_used;
diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c
index 2797c14..2465f1f 100644
--- a/programs/test/benchmark.c
+++ b/programs/test/benchmark.c
@@ -186,12 +186,12 @@
 #define MEMORY_MEASURE_INIT                                             \
     size_t max_used, max_blocks, max_bytes;                             \
     size_t prv_used, prv_blocks;                                        \
-    size_t alloc_cnt, free_cnt;                                         \
+    size_t alloc_cnt, free_cnt, prv_alloc, prv_free;                    \
     mbedtls_memory_buffer_alloc_cur_get( &prv_used, &prv_blocks );      \
     mbedtls_memory_buffer_alloc_max_reset( );
 
 #define MEMORY_MEASURE_RESET                                            \
-    mbedtls_memory_buffer_alloc_count_reset( );
+    mbedtls_memory_buffer_alloc_count_get( &prv_alloc, &prv_free );
 
 #define MEMORY_MEASURE_PRINT( title_len )                               \
     mbedtls_memory_buffer_alloc_max_get( &max_used, &max_blocks );      \
@@ -202,7 +202,8 @@
     max_blocks -= prv_blocks;                                           \
     max_bytes = max_used + MEM_BLOCK_OVERHEAD * max_blocks;             \
     mbedtls_printf( "%6u heap bytes, %6u allocs",                       \
-                    (unsigned) max_bytes, (unsigned) alloc_cnt );
+                    (unsigned) max_bytes,                               \
+                    (unsigned)( alloc_cnt - prv_alloc ) );
 
 #else
 #define MEMORY_MEASURE_INIT