1
0
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:
Christophe CURIS
2014-11-29 16:35:28 +01:00
committed by Carlos R. Mafra
parent d83b5de644
commit 54feb499cb

View File

@@ -2222,11 +2222,14 @@ static void prepareForClose(_Panel * panel)
for (i = 0; i < wlengthof(sample_colors); i++) {
WMColor *color;
char *str;
WMPropList *pl_color;
color = WMGetColorWellColor(panel->sampW[i]);
str = WMGetColorRGBDescription(color);
WMAddToPLArray(textureList, WMCreatePLString(str));
pl_color = WMCreatePLString(str);
WMAddToPLArray(textureList, pl_color);
WMReleasePropList(pl_color);
wfree(str);
}
WMSetUDObjectForKey(udb, textureList, "ColorList");