Hi Corey,
Thank you for reporting this problem. It will be fixed shortly.
> Was there a reason for this change?
Yes. The intention was to avoid saving non-used slots, however
the new code forgot the take in consideration the lower bound.
Cheers,
Philippe.
-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Corey Reed
Sent: Tuesday, March 05, 2002 10:33 AM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] bug in TObjArray streamer
There appears to be a bug in the streamer of TObjArray in root 3. The
following code works in root 2.25 but crashes in root 3.
{
// make object array: 10 entries, index 5 to 15
TObjArray* oa = new TObjArray(10,5);
for (Int_t i=0; i<10; i++) {
TObject* o = new TObject();
oa->Add(o);
}
// write to file and crash
TFile f("test.root","recreate");
f.cd();
oa->Write("array",TObject::kSingleKey);
f.Close();
}
Changing the line in TObjArray::Streamer (root3) from
nobjects = GetLast()+1;
back to what it was in root2.25
nobjects = GetSize();
Should fix the problem.
Was there a reason for this change?
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:44 MET