rem: free(colors);
add: wfree(colors);
context: updateGradButtons(TexturePanel *panel){    RImage *image;    WMPixmap *pixmap;    int colorn;    RColor **colors;    colorn = WMGetListNumberOfRows(panel->gcolL);    if (colorn < 1) {	pixmap = NULL;    } else {	int i;	WMListItem *item;	colors = wmalloc(sizeof(RColor*)*(colorn+1));	for (i = 0; i < colorn; i++) {	    item = WMGetListItem(panel->gcolL, i);	    colors[i] = (RColor*)item->clientData;	}	colors[i] = NULL;	image = RRenderMultiGradient(80, 30, colors, RHorizontalGradient);	pixmap = WMCreatePixmapFromRImage(WMWidgetScreen(panel->gcolL),					  image, 128);	RDestroyImage(image);	WMSetButtonImage(panel->dirhB, pixmap);	WMReleasePixmap(pixmap);	image = RRenderMultiGradient(80, 30, colors, RVerticalGradient);	pixmap = WMCreatePixmapFromRImage(WMWidgetScreen(panel->gcolL),					  image, 128);	RDestroyImage(image);	WMSetButtonImage(panel->dirvB, pixmap);	WMReleasePixmap(pixmap);	image = RRenderMultiGradient(80, 30, colors, RDiagonalGradient);	pixmap = WMCreatePixmapFromRImage(WMWidgetScreen(panel->gcolL),					  image, 128);	RDestroyImage(image);	WMSetButtonImage(panel->dirdB, pixmap);	WMReleasePixmap(pixmap);	free(colors);    }}