]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Add data_stack_get_alloc_size()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 31 Mar 2021 10:19:00 +0000 (13:19 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Tue, 4 May 2021 07:02:35 +0000 (07:02 +0000)
src/lib/data-stack.c
src/lib/data-stack.h

index ccc8d96326fe3412d6abaab1ccd03774611873c3..a0d2581dd7e3f97fb3c07516dd1cd61a4f0e766c 100644 (file)
@@ -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;
index 5eb2d5e4136db5e020cd4c0868185fa4a87f7b93..a4f4980efbdcdc7ae272fce68baf38565c26ce5c 100644 (file)
@@ -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);