Similar to the leak in TextOut.

*** lib/Xm/TextF.c.orig Wed Aug  2 11:36:46 2000
--- lib/Xm/TextF.c      Wed Aug  2 16:38:14 2000
***************
*** 774,781 ****
      XGCValues values;
      XtGCMask mask, dynamic, dontcare;

!     if (TextF_DrawGC(w))
        XtReleaseGC((Widget)w, TextF_DrawGC(w));

      /*
       * DrawGC
--- 774,786 ----
      XGCValues values;
      XtGCMask mask, dynamic, dontcare;

!     if (TextF_DrawGC(w)) {
! #ifdef USE_SHARED_GC
        XtReleaseGC((Widget)w, TextF_DrawGC(w));
+ #else
+       XFreeGC(XtDisplay(w), TextF_DrawGC(w));
+ #endif
+     }

      /*
       * DrawGC
***************
*** 1243,1250 ****
--- 1248,1260 ----
        TextF_TimerId(aw) = 0;
      }

+ #ifdef USE_SHARED_GC
      XtReleaseGC((Widget)w, TextF_DrawGC(w));
      XtReleaseGC((Widget)w, TextF_CursorGC(w));
+ #else
+     XFreeGC(XtDisplay(w), TextF_DrawGC(w));
+     XFreeGC(XtDisplay(w), TextF_CursorGC(w));
+ #endif
      XtReleaseGC((Widget)w, TextF_CopyGC(w));

      if (TextF_FontListCreated(w))
***************
*** 1366,1373 ****
--- 1376,1388 ----
      if (XtIsRealized(w) && (Prim_Foreground(w) != Prim_Foreground(new_w) ||
                            XtBackground(w) != XtBackground(new_w)))
      {
+ #ifdef USE_SHARED_GC
        XtReleaseGC((Widget)w, TextF_DrawGC(w));
        XtReleaseGC((Widget)w, TextF_CursorGC(w));
+ #else
+       XFreeGC(XtDisplay(w), TextF_DrawGC(w));
+       XFreeGC(XtDisplay(w), TextF_CursorGC(w));
+ #endif
        XtReleaseGC((Widget)w, TextF_CopyGC(w));

        GCInitialize(new_w);



--== Sent via Deja.com http://www.deja.com/ ==--
Before you buy.

Reply via email to