Fons, No, I do not use gVirtualX->CreateGC(). The problem seems to occur when I delete the pointer to the TGListTree (*ListTree) as indicated below in the few lines of code I extracted from the example I sent in previously. If I don't delete this pointer in the destructor, the code seems to work okay; but I believe that this causes a memory leak which will eventually cause the code to crash. Is my usage of TGListTree correct? This problem only seems to occur when I create a transient window that contains a TGCanvas and a TGListTree. However, it is quite possible that I have a coding error somewhere else that is causing this problem. We you able to confirm that my example resulted in a BadGC error message (and sometimes crashes)? Thanks for the help, Glen TGListTree *ListTree = new TGListTree(ListTreeCanvas->GetViewPort(), 10, 10, kHorizontalFrame, TGFrame::GetWhitePixel()); fWidgets.Add(ListTree); // Works if this line is commented // fWidgets.Delete() is called in the dtor ListTreeCanvas->SetContainer(ListTree); ListTree->SetCanvas(ListTreeCanvas); ListTree->AddItem(ListTree->GetFirstItem(),"Item"); On 02 Jun 2003 17:20:53 +0200 Fons Rademakers <Fons.Rademakers@cern.ch> wrote: > Hi Glen, > > do you create your own GC's via gVirtualX->CreateGC() ? > > Cheers, Fons. > > > > On Mon, 2003-06-02 at 00:49, Glen R. Salo wrote: > > Bertrand, > > > > Thanks for the suggestion. However, I am still unable to find my > > problem. Attached is a sample code that illustrates the problem I > > believe I am having with my real code. To compile the code, do: > > > > g++ -g -o nodetest TNodeListTest.cxx `root-config --glibs` > > `root-config --cflags` > > > > Execute nodetest (./nodetest) click on "Click Here", then on > > "Close", then on "Click Here" again. When I do this, I get the > > following error: > > > > > > Error in <RootX11ErrorHandler>: BadGC (invalid GC parameter) (XID: > > 0, XREQ: 56) Error in <RootX11ErrorHandler>: BadGC (invalid GC > > parameter) (XID: 0, XREQ: 56) > > > > Any help solving this problem is greatly appreciated. > > > > Thanks, > > > > Glen > > > > On Sun, 1 Jun 2003 14:35:48 +0200 > > "Bertrand Bellenot" <bellbert@scopus.ch> wrote: > > > > > Hello friends, > > > > > > In order to solve the problem, please remove these lines into > > > TGListTree destructor : > > > > > > gVirtualX->DeleteGC(fDrawGC); > > > gVirtualX->DeleteGC(fLineGC); > > > gVirtualX->DeleteGC(fHighlightGC); > > > > > > Cheers, > > > Bertrand. > > > > > > ----- Original Message ----- > > > From: "Glen R. Salo" <glenrsalo@earthlink.net> > > > To: <roottalk@pcroot.cern.ch> > > > Sent: Sunday, June 01, 2003 12:41 AM > > > Subject: [ROOT] How to determine the cause of a BadGC error? > > > > > > > > > > After updating my version of ROOT to the CVS version on May 31, > > > > 2003, a program that use to run without problems crashes with > > > > the following error: > > > > > > > > Error in <RootX11ErrorHandler>: BadGC (invalid GC parameter) > > > > (XID: 143767944, XREQ: 56) > > > > > > > > The problem seems to be with one of my classes that uses a > > > > TGListTree, but I am having a hard time trying to pin-point the > > > > cause as the problem seems to occur after the destructor has > > > > completed and before the next line in the calling routine. Any > > > > suggestions? > > > > > > > > I am running RedHat 9.0 with the latest updates on an P4 > > > > platform. > > > > > > > > Thanks, > > > > > > > > Glen > > > > > > > > > > > > > -- > Org: CERN, European Laboratory for Particle Physics. > Mail: 1211 Geneve 23, Switzerland > E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 > WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET