From 6ad94c59bf4296a96c2c953ab3611fa2027aef58 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Thu, 18 May 2023 11:49:21 -0700 Subject: [PATCH] libsysprof-analyze: add strv helpers --- .../sysprof-strings-private.h | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/libsysprof-analyze/sysprof-strings-private.h b/src/libsysprof-analyze/sysprof-strings-private.h index 3d58b927..a4faae2d 100644 --- a/src/libsysprof-analyze/sysprof-strings-private.h +++ b/src/libsysprof-analyze/sysprof-strings-private.h @@ -34,4 +34,26 @@ GRefString *sysprof_strings_get (SysprofStrings *self, GRefString *sysprof_strings_lookup (SysprofStrings *self, const char *string); +#define SYSPROF_STRV_INIT(...) ((const char * const[]){__VA_ARGS__,NULL}) + +static inline gboolean +sysprof_set_strv (char ***dest, + const char * const *src) +{ + if ((const char * const *)*dest == src) + return FALSE; + + if (*dest == NULL || + src == NULL || + !g_strv_equal ((const char * const *)*dest, src)) + { + char **copy = g_strdupv ((char **)src); + g_strfreev (*dest); + *dest = copy; + return TRUE; + } + + return FALSE; +} + G_END_DECLS