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.