[ROOT] Bug or Feature: deleting TTrees in opened File

From: Birger Koblitz (koblitz@mail.desy.de)
Date: Wed Dec 20 2000 - 11:55:52 MET


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