diff options
author | Robert Tari <robert@tari.in> | 2023-11-01 11:11:01 +0100 |
---|---|---|
committer | Robert Tari <robert@tari.in> | 2023-11-01 11:11:01 +0100 |
commit | 76e4d65da8d64961654bad0ea8b4f094dd5608ad (patch) | |
tree | 7ce8ec5bf2c06ee35a207a0ae83e0645b0d815f4 | |
parent | 465d686a86fa2c1eacf2bca5390399ca88a94560 (diff) | |
download | ayatana-indicator-keyboard-76e4d65da8d64961654bad0ea8b4f094dd5608ad.tar.gz ayatana-indicator-keyboard-76e4d65da8d64961654bad0ea8b4f094dd5608ad.tar.bz2 ayatana-indicator-keyboard-76e4d65da8d64961654bad0ea8b4f094dd5608ad.zip |
Check if layout array is null before iterating it
-rw-r--r-- | src/keyboard-lomiri.c | 36 | ||||
-rw-r--r-- | src/keyboard-x11.c | 38 |
2 files changed, 41 insertions, 33 deletions
diff --git a/src/keyboard-lomiri.c b/src/keyboard-lomiri.c index e5e0f623..1455b95e 100644 --- a/src/keyboard-lomiri.c +++ b/src/keyboard-lomiri.c @@ -431,7 +431,6 @@ static void keyboard_init(Keyboard *self) } } - guint nLayouts = g_strv_length(lLayouts); guint nVariants = 0; if (lVariants != NULL) @@ -439,34 +438,39 @@ static void keyboard_init(Keyboard *self) g_strv_length(lVariants); } - for (guint nLayout = 0; nLayout < nLayouts; nLayout++) + if (lLayouts != NULL) { - gchar *sId = NULL; + guint nLayouts = g_strv_length(lLayouts); - if (nVariants > nLayout) + for (guint nLayout = 0; nLayout < nLayouts; nLayout++) { - guint nVariant = strlen(lVariants[nLayout]); + gchar *sId = NULL; - if (nVariants == nLayouts && nVariant > 0) + if (nVariants > nLayout) { - sId = g_strconcat(lLayouts[nLayout], "+", lVariants[nLayout], NULL); + guint nVariant = strlen(lVariants[nLayout]); + + if (nVariants == nLayouts && nVariant > 0) + { + sId = g_strconcat(lLayouts[nLayout], "+", lVariants[nLayout], NULL); + } + else + { + sId = g_strdup(lLayouts[nLayout]); + } } else { sId = g_strdup(lLayouts[nLayout]); } - } - else - { - sId = g_strdup(lLayouts[nLayout]); - } - self->pPrivate->lLayoutRec = g_slist_append(self->pPrivate->lLayoutRec, sId); - } + self->pPrivate->lLayoutRec = g_slist_append(self->pPrivate->lLayoutRec, sId); + } - self->pPrivate->nLayout = 0; + self->pPrivate->nLayout = 0; - g_strfreev(lLayouts); + g_strfreev(lLayouts); + } if (lVariants != NULL) { diff --git a/src/keyboard-x11.c b/src/keyboard-x11.c index c1b256a2..fa945f01 100644 --- a/src/keyboard-x11.c +++ b/src/keyboard-x11.c @@ -702,7 +702,6 @@ static void keyboard_init(Keyboard *self) } } - guint nLayouts = g_strv_length(lLayouts); guint nVariants = 0; if (lVariants != NULL) @@ -710,35 +709,40 @@ static void keyboard_init(Keyboard *self) nVariants = g_strv_length(lVariants); } - for (guint nLayout = 0; nLayout < nLayouts; nLayout++) + if (lLayouts != NULL) { - gchar *sId = NULL; + guint nLayouts = g_strv_length(lLayouts); - if (nVariants > nLayout) + for (guint nLayout = 0; nLayout < nLayouts; nLayout++) { - guint nVariant = strlen(lVariants[nLayout]); + gchar *sId = NULL; - if (nVariants == nLayouts && nVariant > 0) + if (nVariants > nLayout) { - sId = g_strconcat(lLayouts[nLayout], "+", lVariants[nLayout], NULL); + guint nVariant = strlen(lVariants[nLayout]); + + if (nVariants == nLayouts && nVariant > 0) + { + sId = g_strconcat(lLayouts[nLayout], "+", lVariants[nLayout], NULL); + } + else + { + sId = g_strdup(lLayouts[nLayout]); + } } else { sId = g_strdup(lLayouts[nLayout]); } - } - else - { - sId = g_strdup(lLayouts[nLayout]); - } - self->pPrivate->lLayoutRec = g_slist_append(self->pPrivate->lLayoutRec, sId); - self->pPrivate->sSystemLayout = g_strdup(sId); - } + self->pPrivate->lLayoutRec = g_slist_append(self->pPrivate->lLayoutRec, sId); + self->pPrivate->sSystemLayout = g_strdup(sId); + } - self->pPrivate->nLayout = 0; + self->pPrivate->nLayout = 0; - g_strfreev(lLayouts); + g_strfreev(lLayouts); + } if (lVariants != NULL) { |