From 5ad557c6c8448d232d0f3b1513545d612b176b24 Mon Sep 17 00:00:00 2001 From: dan Date: Fri, 29 Nov 2002 02:47:33 +0000 Subject: [PATCH] fixed a memleak in the font panel in WINGs --- WINGs/ChangeLog | 1 + WINGs/Tests/wtest.c | 35 ++++++++++------------------------- WINGs/wfontpanel.c | 11 +++++------ WINGs/widgets.c | 2 +- configure.ac | 2 +- 5 files changed, 18 insertions(+), 33 deletions(-) diff --git a/WINGs/ChangeLog b/WINGs/ChangeLog index b92dd7af..72a56a86 100644 --- a/WINGs/ChangeLog +++ b/WINGs/ChangeLog @@ -44,6 +44,7 @@ Changes since wmaker 0.80.1: - Fixed a bug with empty frame titles (Alexey Voinov ) - Added WMGetWidgetBackgroundColor() - Code cleanup in wtext.c +- Fixed a memory leak in wfontpanel.c Changes since wmaker 0.80.0: diff --git a/WINGs/Tests/wtest.c b/WINGs/Tests/wtest.c index 3808e24f..7a55f459 100644 --- a/WINGs/Tests/wtest.c +++ b/WINGs/Tests/wtest.c @@ -1304,41 +1304,26 @@ main(int argc, char **argv) testTextField(scr); - - + testText(scr); testFontPanel(scr); #if 0 - testText(scr); - testDragAndDrop(scr); - testColorPanel(scr); - testScrollView(scr); - testTabView(scr); testBox(scr); - testText(scr); - testList(scr); - - testProgressIndicator(scr); - - testColorWell(scr); - - - testDragAndDrop(scr); - testFontPanel(scr); - testButton(scr); - + testColorPanel(scr); + testColorWell(scr); + testDragAndDrop(scr); testFrame(scr); - - testSplitView(scr); - testGradientButtons(scr); - + testList(scr); testOpenFilePanel(scr); - - testSlider(scr); + testProgressIndicator(scr); testPullDown(scr); + testScrollView(scr); + testSlider(scr); + testSplitView(scr); + testTabView(scr); #endif /* * The main event loop. diff --git a/WINGs/wfontpanel.c b/WINGs/wfontpanel.c index b34f463d..168a8a02 100644 --- a/WINGs/wfontpanel.c +++ b/WINGs/wfontpanel.c @@ -573,7 +573,6 @@ addTypefaceToFamily(Family *family, char fontFields[NUM_FIELDS][256]) } - /* * families (same family name) (Hashtable of family -> array) * registries (same family but different registries) @@ -695,13 +694,12 @@ static void listFamilies(WMScreen *scr, WMFontPanel *panel) { char **fontList; - int count; - int i; - WMHashTable *families = WMCreateHashTable(WMStringPointerHashCallbacks); + WMHashTable *families; char fields[NUM_FIELDS][256]; WMHashEnumerator enumer; WMArray *array; - + int i, count; + fontList = XListFonts(scr->display, ALL_FONTS_MASK, MAX_FONTS_TO_RETRIEVE, &count); if (!fontList) { @@ -710,6 +708,8 @@ listFamilies(WMScreen *scr, WMFontPanel *panel) return; } + families = WMCreateHashTable(WMStringPointerHashCallbacks); + for (i = 0; i < count; i++) { int fname_len; @@ -757,7 +757,6 @@ listFamilies(WMScreen *scr, WMFontPanel *panel) item->clientData = fam; } - /* Isn't this going to memleak since items weren't released? --Dan */ WMFreeArray(array); } WMSortListItems(panel->famLs); diff --git a/WINGs/widgets.c b/WINGs/widgets.c index 6c9fe137..d5ee4267 100644 --- a/WINGs/widgets.c +++ b/WINGs/widgets.c @@ -1070,7 +1070,7 @@ WMSetWidgetBackgroundColor(WMWidget *w, WMColor *color) WMColor* WMGetWidgetBackgroundColor(WMWidget *w) { - // shoul retain? + // should retain? return W_VIEW(w)->backColor; } diff --git a/configure.ac b/configure.ac index 25380c47..2242e907 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ AC_INIT(src/WindowMaker.h) -AM_INIT_AUTOMAKE(WindowMaker, 0.81.2) +AM_INIT_AUTOMAKE(WindowMaker, 0.81.0) AC_PROG_LIBTOOL