diff --git a/builder/builder-cache.c b/builder/builder-cache.c index 92357e6b3..ce1ac6b51 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 06bb8beeb..edbfd6a69 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,