This somewhat ugly fix takes into account that font_set->font_name
before load_font_info() are individually allocated buffers wheras after
load_font_info() they are pointers into the oc->core.font_info.font_name_list
buffer.

Signed-off-by: Kim Woelders <[email protected]>
---
 modules/om/generic/omGeneric.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/modules/om/generic/omGeneric.c b/modules/om/generic/omGeneric.c
index 453cc61..de3fb03 100644
--- a/modules/om/generic/omGeneric.c
+++ b/modules/om/generic/omGeneric.c
@@ -1430,7 +1430,8 @@ free_fontdataOC(
 
 static void destroy_fontdata(
     XOCGenericPart *gen,
-    Display *dpy)
+    Display *dpy,
+    int free_font_names)
 {
     FontSet    font_set = (FontSet) NULL;
     int                font_set_num = 0;
@@ -1454,6 +1455,10 @@ static void destroy_fontdata(
                Xfree(font_set->font_data);
                font_set->font_data = NULL;
            }
+           if(free_font_names && font_set->font_name) {
+               Xfree(font_set->font_name);
+               font_set->font_name = NULL;
+           }
            if(font_set->substitute) {
                free_fontdataOC(dpy,
                        font_set->substitute, font_set->substitute_num);
@@ -1497,7 +1502,7 @@ destroy_oc(
        _XlcCloseConverter(gen->utf8_to_cs);
 
 /* For VW/UDC start */ /* Change 1996.01.8 */
-    destroy_fontdata(gen,dpy);
+    destroy_fontdata(gen, dpy, oc->core.font_info.font_name_list == NULL);
 /*
 */
 /* For VW/UDC end */
-- 
1.6.5.2

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to