From 54b120d461b7e2fdfa427ed99c67b09868bf1daf Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Tue, 8 Dec 2020 01:27:54 +0100
Subject: [PATCH] lib-sieve: sieve - Retain resource usage statistics across
 script recompile in sieve_open*().

---
 src/lib-sieve/sieve.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/lib-sieve/sieve.c b/src/lib-sieve/sieve.c
index 79a4ec426..b3e560df8 100644
--- a/src/lib-sieve/sieve.c
+++ b/src/lib-sieve/sieve.c
@@ -380,11 +380,16 @@ sieve_open_script_real(struct sieve_script *script,
 		       enum sieve_error *error_r)
 {
 	struct sieve_instance *svinst = sieve_script_svinst(script);
+	struct sieve_resource_usage rusage;
 	struct sieve_binary *sbin;
 
+	sieve_resource_usage_init(&rusage);
+
 	/* Try to open the matching binary */
 	sbin = sieve_script_binary_load(script, error_r);
 	if (sbin != NULL) {
+		sieve_binary_get_resource_usage(sbin, &rusage);
+
 		/* Ok, it exists; now let's see if it is up to date */
 		if (!sieve_binary_up_to_date(sbin, flags)) {
 			/* Not up to date */
@@ -411,6 +416,8 @@ sieve_open_script_real(struct sieve_script *script,
 			"Script `%s' from %s successfully compiled",
 			sieve_script_name(script),
 			sieve_script_location(script));
+
+		sieve_binary_set_resource_usage(sbin, &rusage);
 	}
 
 	return sbin;
-- 
GitLab