mirror of
https://github.com/weechat/weechat.git
synced 2026-07-01 07:16:37 +02:00
Fix crash when changing or removing color palette options
This commit is contained in:
@@ -693,7 +693,7 @@ config_weechat_palette_change_cb (void *data,
|
||||
number = (int)strtol (option->name, &error, 10);
|
||||
if (error && !error[0])
|
||||
{
|
||||
gui_color_palette_change (number, CONFIG_STRING(option));
|
||||
gui_color_palette_add (number, CONFIG_STRING(option));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-29
@@ -574,7 +574,7 @@ gui_color_palette_get (int number)
|
||||
void
|
||||
gui_color_palette_add (int number, const char *value)
|
||||
{
|
||||
struct t_gui_color_palette *new_color_palette, *ptr_color_palette;
|
||||
struct t_gui_color_palette *new_color_palette;
|
||||
char str_number[64];
|
||||
|
||||
gui_color_palette_alloc_structs ();
|
||||
@@ -584,10 +584,6 @@ gui_color_palette_add (int number, const char *value)
|
||||
return;
|
||||
|
||||
snprintf (str_number, sizeof (str_number), "%d", number);
|
||||
ptr_color_palette = hashtable_get (gui_color_hash_palette_color,
|
||||
str_number);
|
||||
if (ptr_color_palette)
|
||||
gui_color_palette_free (ptr_color_palette);
|
||||
hashtable_set (gui_color_hash_palette_color,
|
||||
str_number, new_color_palette);
|
||||
gui_color_palette_build_aliases ();
|
||||
@@ -616,7 +612,6 @@ gui_color_palette_remove (int number)
|
||||
str_number);
|
||||
if (ptr_color_palette)
|
||||
{
|
||||
gui_color_palette_free (ptr_color_palette);
|
||||
hashtable_remove (gui_color_hash_palette_color, str_number);
|
||||
gui_color_palette_build_aliases ();
|
||||
if (gui_init_ok)
|
||||
@@ -627,29 +622,6 @@ gui_color_palette_remove (int number)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_color_palette_change: change a color in palette
|
||||
*/
|
||||
|
||||
void
|
||||
gui_color_palette_change (int number, const char *value)
|
||||
{
|
||||
struct t_gui_color_palette *ptr_color_palette;
|
||||
char str_number[64];
|
||||
|
||||
gui_color_palette_alloc_structs ();
|
||||
|
||||
snprintf (str_number, sizeof (str_number), "%d", number);
|
||||
ptr_color_palette = hashtable_get (gui_color_hash_palette_color,
|
||||
str_number);
|
||||
if (ptr_color_palette)
|
||||
{
|
||||
gui_color_palette_free (ptr_color_palette);
|
||||
hashtable_remove (gui_color_hash_palette_color, str_number);
|
||||
gui_color_palette_add (number, value);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_color_palette_free_structs: free hashtables and lists for palette
|
||||
*/
|
||||
|
||||
@@ -158,7 +158,6 @@ extern int gui_color_palette_get_alias (const char *alias);
|
||||
extern struct t_gui_color_palette *gui_color_palette_get (int number);
|
||||
extern void gui_color_palette_add (int number, const char *value);
|
||||
extern void gui_color_palette_remove (int number);
|
||||
extern void gui_color_palette_change (int number, const char *value);
|
||||
extern void gui_color_palette_free_structs ();
|
||||
|
||||
/* color functions (GUI dependent) */
|
||||
|
||||
Reference in New Issue
Block a user