Hi,
I investigated mysterious crashes I had when reading ROOT files with
purify, since I suspected memory corruption. I found that the array
fBasketRAM in class TBranch is sometimes indexed with numbers < 0. I don't
really understand how this happens, but I did this to get my stuff to run:
In file TREE_Branch.cxx:
...
TBasket* TBranch::GetBasket(Int_t basketnumber) {
...
fBaskets[basketnumber] = basket;
// protect against fNBasketRAM < 0:
if( fNBasketRAM >= 0 ) {
if (fNBasketRAM < kMaxRAM) fBasketRAM[fNBasketRAM] = basketnumber;
}
else {
Warning("GetBasket","fNBasketRAM < 0, shouldn't happen!");
}
fNBasketRAM++;
return basket;
}
I guess I leave it to the experts to find out how this can happen. I would
also like some advice on the fix I did, i.e. if I should expect other
problems now. I work with 2.23/07 on Solaris.
cheers, Stefan
---Stefan Kluth---------------Lynen Fellow----------------|\--|\-------
- LBNL, MS 50A 2160 - phone: +1 510 495 2376 - |/ |/ -
- 1 Cyclotron Rd. - fax: +1 510 495 2957 - |\/\|\/\|' -
---Berkeley, CA94720, USA-----e-mail: SKluth@lbl.gov------|/\/|/\/|----
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:42 MET