Nick van Eijndhoven wrote: > > Dear ROOTers, > I encountered the following crash in ROOT 2.20/06 on windows95. > > I have a class Aap in which > > protected: > TH1F* histo; > private: > TDirectory* fDir; > > are datamembers. > In the default constructor I do > > Aap::Aap() > { > fDir=gDirectory->mkdir("Aap","test directory"); > histo=0; > } > > whereas I have also the public memberfunctions > > void Aap::Fill() > { > fDir->cd(); > histo=new TH1F(........); > .... // some code to fill the histogram > } > void Aap::Dir() > { > fDir->ls(); > } > > To test my code I have the following ROOT macro > > // macro test.C > { > gSystem->Load("Aap.dll"); > > Aap p; > p.Fill(); > Aap q; > q.Fill(); > } > > The following ROOT session crashes : > > Root> .x test.C > Root> q.Dir() // works ok > Root> p.Dir() // ROOT crashes with a pagefault in ROOT_BASE > > when I use > Root> gDirectory->ls() > > it also shows me only the directory for q. > > I have the feeling that the problem is related to the fact that > I create 2 directories with the same name by creating 2 objects > of the same class. > > Can anyone tell me what is wrong here and how I can cure it ? > -- Hi Nick, I cannot reproduce this problem. It is normal that gDirectory->ls() shows only the last level. That's where you are. You can do at the end gDirectory->cd(".."); gDirectory->ls(); // this will show you the 2 levels Rene
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:28 MET