Hi Birger,
What you do is perfectly legal and should not generate a crash.
I need a more detailed example to understand what can be the problem.
Could you provide a simple script with a small data file(s0 ?
Rene Brun
Birger Koblitz wrote:
>
> Hi,
>
> I had some truble finding a stupid bug I made. The code looked somewhat
> like this:
> TFile *tf=new TFile("test.root");
> t=(TTree *) tf->Get("ntuple");
> [ use Tree ]
> delete t; <<<<<<<<<<<<<<
>
> and then far away in a different Library:
> TFile *tf =
> (TFile*)gROOT->GetListOfFiles()->FindObject("test.root");
> if(!tf) TFile *tf=new TFile("test.root");
> t=(TTree *) tf->Get("ntuple");
> [use t] .... crash
> So I asked myself: why should this dammn line crash? After some debugging
> I found the above error. But is it really an error? Why should calling a
> destructor on an ntuple out of a read-only file matter at all. Why does
> closing and reopening the file after deleting t not help? What is there
> lingering around in the system?
> I think this is a again a case of: This should be fixed in root if root is
> supposed to be foolproof.
>
> Cheers,
> Birger
>
> /------------------------------------------------------------\
> | Birger Koblitz koblitz@mail.desy.de |
> | Max-Planck-Institut fuer Physik |
> | (Werner Heisenberg-Institut) |
> | DESY-FH1K Tel. (40) 8998-3971 |
> | Notkestr. 85 |
> | D-22603 HAMBURG |
> \------------------------------------------------------------/
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:40 MET