From 67dc4a153fa21db7035c0ca6a0b4a4301ebceb56 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Wed, 22 Feb 2017 09:42:13 +0100 Subject: [PATCH] builder: Add builder_cache_checksum_compat_strv This lets us add strv:s without invalidating old caches if the empty strv means same as before --- builder/builder-cache.c | 13 +++++++++++++ builder/builder-cache.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/builder/builder-cache.c b/builder/builder-cache.c index 92357e6b..ce1ac6b5 100644 --- a/builder/builder-cache.c +++ b/builder/builder-cache.c @@ -1088,6 +1088,19 @@ builder_cache_checksum_str (BuilderCache *self, g_checksum_update (self->checksum, (const guchar *) "\1", 1); } +/* Only add to cache if non-empty. This means we can add + these things compatibly without invalidating the cache. + This is useful if empty means no change from what was + before */ +void +builder_cache_checksum_compat_strv (BuilderCache *self, + char **strv) +{ + if (strv != NULL && strv[0] != NULL) + builder_cache_checksum_strv (self, strv); +} + + void builder_cache_checksum_strv (BuilderCache *self, char **strv) diff --git a/builder/builder-cache.h b/builder/builder-cache.h index 06bb8bee..edbfd6a6 100644 --- a/builder/builder-cache.h +++ b/builder/builder-cache.h @@ -65,6 +65,8 @@ void builder_cache_checksum_str (BuilderCache *self, const char *str); void builder_cache_checksum_strv (BuilderCache *self, char **strv); +void builder_cache_checksum_compat_strv (BuilderCache *self, + char **strv); void builder_cache_checksum_boolean (BuilderCache *self, gboolean val); void builder_cache_checksum_uint32 (BuilderCache *self,