From: Timo Sirainen Date: Fri, 13 Nov 2020 17:30:29 +0000 (+0200) Subject: lib: Add data_stack_get_used_size() X-Git-Tag: 2.3.14.rc1~325 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2aedf5afa713faafd60a39c7f52557c6a8436901;p=thirdparty%2Fdovecot%2Fcore.git lib: Add data_stack_get_used_size() Mainly for debugging purposes. --- diff --git a/src/lib/data-stack.c b/src/lib/data-stack.c index a408756b78..807d06ffc9 100644 --- a/src/lib/data-stack.c +++ b/src/lib/data-stack.c @@ -585,6 +585,16 @@ void data_stack_set_clean_after_pop(bool enable ATTR_UNUSED) #endif } +size_t data_stack_get_used_size(void) +{ + struct stack_block *block; + size_t size = 0; + + for (block = current_block; block != NULL; block = block->next) + size += current_block->size - current_block->left; + return size; +} + void data_stack_init(void) { if (data_stack_initialized) { diff --git a/src/lib/data-stack.h b/src/lib/data-stack.h index da8791ef3c..5eb2d5e413 100644 --- a/src/lib/data-stack.h +++ b/src/lib/data-stack.h @@ -117,6 +117,9 @@ 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 currently used in data stack. */ +size_t data_stack_get_used_size(void); + void data_stack_init(void); void data_stack_deinit(void);