mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 12:28:22 +01:00
WPrefs: fix memory leak when storing the list of colors in Appearence panel
The name of the color is stored in a newly created PLString which leaks. This is due to the fact that they are created with a refCount of 1, then the PLArray in which they are placed increments that count, so at list destruction the count would return to 1 instead of 0, meaning the PLString won't be freed. This patch properly calls WMReleasePropList after addition to the list, so that the count goes back to 1, which means it will be automatically freed when the PLArray will be released. Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This commit is contained in:
committed by
Carlos R. Mafra
parent
d83b5de644
commit
54feb499cb
@@ -2222,11 +2222,14 @@ static void prepareForClose(_Panel * panel)
|
|||||||
for (i = 0; i < wlengthof(sample_colors); i++) {
|
for (i = 0; i < wlengthof(sample_colors); i++) {
|
||||||
WMColor *color;
|
WMColor *color;
|
||||||
char *str;
|
char *str;
|
||||||
|
WMPropList *pl_color;
|
||||||
|
|
||||||
color = WMGetColorWellColor(panel->sampW[i]);
|
color = WMGetColorWellColor(panel->sampW[i]);
|
||||||
|
|
||||||
str = WMGetColorRGBDescription(color);
|
str = WMGetColorRGBDescription(color);
|
||||||
WMAddToPLArray(textureList, WMCreatePLString(str));
|
pl_color = WMCreatePLString(str);
|
||||||
|
WMAddToPLArray(textureList, pl_color);
|
||||||
|
WMReleasePropList(pl_color);
|
||||||
wfree(str);
|
wfree(str);
|
||||||
}
|
}
|
||||||
WMSetUDObjectForKey(udb, textureList, "ColorList");
|
WMSetUDObjectForKey(udb, textureList, "ColorList");
|
||||||
|
|||||||
Reference in New Issue
Block a user