]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Add data_stack_get_used_size()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Fri, 13 Nov 2020 17:30:29 +0000 (19:30 +0200)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Mon, 23 Nov 2020 12:30:13 +0000 (12:30 +0000)
Mainly for debugging purposes.

src/lib/data-stack.c
src/lib/data-stack.h

index a408756b7887e39b3772039b7d946b96c62c611f..807d06ffc949e7b20d61b3cb1c10a0fd1e49dd48 100644 (file)
@@ -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) {
index da8791ef3c8576b24251049022186723dae647d7..5eb2d5e4136db5e020cd4c0868185fa4a87f7b93 100644 (file)
@@ -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);