Author: ianmacarthur
Date: 2011-01-14 14:06:41 -0800 (Fri, 14 Jan 2011)
New Revision: 8278
Log:
This is an attempt to resolve the potential leaks identified in fl_init_xim() by
Denton Thomas.
This is not quite the patch as he proposed it, but I *think* whay I have done
is OK.
Seems to be OK for me anyway... Needs testing by others of course!



Modified:
   branches/branch-1.3/src/Fl_x.cxx

Modified: branches/branch-1.3/src/Fl_x.cxx
===================================================================
--- branches/branch-1.3/src/Fl_x.cxx    2011-01-14 11:48:18 UTC (rev 8277)
+++ branches/branch-1.3/src/Fl_x.cxx    2011-01-14 22:06:41 UTC (rev 8278)
@@ -550,6 +550,8 @@
                   &xim_styles, NULL, NULL);
   } else {
     Fl::warning("XOpenIM() failed\n");
+    // if xim_styles is allocated, free it now
+    if(xim_styles) XFree(xim_styles);
     return;
   }
 
@@ -559,14 +561,19 @@
      Fl::warning("No XIM style found\n");
      XCloseIM(fl_xim_im);
      fl_xim_im = NULL;
+     // if xim_styles is allocated, free it now
+     if(xim_styles) XFree(xim_styles);
      return;
   }
   if (!fl_xim_ic) {
     Fl::warning("XCreateIC() failed\n");
     XCloseIM(fl_xim_im);
-    XFree(xim_styles);
+    if(xim_styles) XFree(xim_styles);
+    xim_styles = NULL; // make sure we remember we have free'd xim_styles
     fl_xim_im = NULL;
   }
+  // if xim_styles is still allocated, free it now
+  if(xim_styles) XFree(xim_styles);
 }
 
 void fl_open_display() {

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to