Fix bug that could cause segfault when there are odd number of display themes

This commit is contained in:
Gergely Polonkai 2014-09-21 19:26:08 +02:00
parent 8e6d43b5ef
commit 8ec87260df

View File

@ -134,11 +134,11 @@ ag_display_theme_get_builtin(gint id)
} }
// If the theme is already created, return it // If the theme is already created, return it
if (builtin_themes[-id] != NULL) { if (builtin_themes[-id - 1] != NULL) {
return builtin_themes[-id]; return builtin_themes[-id - 1];
} }
theme = builtin_themes[-id] = g_new0(AgDisplayTheme, 1); builtin_themes[-id - 1] = theme = g_new0(AgDisplayTheme, 1);
switch (id) { switch (id) {
case AG_DISPLAY_THEME_ALL: case AG_DISPLAY_THEME_ALL:
@ -240,8 +240,9 @@ ag_display_theme_get_list(void)
GList *ret = NULL; GList *ret = NULL;
for (i = 1; i <= AG_DISPLAY_THEME_COUNT; i++) { for (i = 1; i <= AG_DISPLAY_THEME_COUNT; i++) {
AgDisplayTheme *theme = ag_display_theme_get_builtin(-i); AgDisplayTheme *theme;
theme = ag_display_theme_get_builtin(-i);
ret = g_list_append(ret, theme); ret = g_list_append(ret, theme);
} }