From: Timo Sirainen Date: Wed, 31 Mar 2021 10:19:00 +0000 (+0300) Subject: lib: Add data_stack_get_alloc_size() X-Git-Tag: 2.3.16~250 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f0180e78850160416b0d3890f1d2b39272b45c8a;p=thirdparty%2Fdovecot%2Fcore.git lib: Add data_stack_get_alloc_size() --- diff --git a/src/lib/data-stack.c b/src/lib/data-stack.c index ccc8d96326..a0d2581dd7 100644 --- a/src/lib/data-stack.c +++ b/src/lib/data-stack.c @@ -580,6 +580,18 @@ void data_stack_set_clean_after_pop(bool enable ATTR_UNUSED) #endif } +size_t data_stack_get_alloc_size(void) +{ + struct stack_block *block; + size_t size = 0; + + i_assert(current_block->next == NULL); + + for (block = current_block; block != NULL; block = block->prev) + size += current_block->size; + return size; +} + size_t data_stack_get_used_size(void) { struct stack_block *block; diff --git a/src/lib/data-stack.h b/src/lib/data-stack.h index 5eb2d5e413..a4f4980efb 100644 --- a/src/lib/data-stack.h +++ b/src/lib/data-stack.h @@ -117,6 +117,8 @@ void t_buffer_alloc_last_full(void); /* If enabled, all the used memory is cleared after t_pop(). */ void data_stack_set_clean_after_pop(bool enable); +/* Returns the number of bytes malloc()ated for data stack. */ +size_t data_stack_get_alloc_size(void); /* Returns the number of bytes currently used in data stack. */ size_t data_stack_get_used_size(void);