[ROOT] eventlist problem

From: Jiri Masik (masik@pc203b.fzu.cz)
Date: Mon Dec 11 2000 - 20:04:09 MET


Hello,

I can't read TEventLists written prior to 2.26 with the current
version of root. Please have a look at the following example

  *   Version   2.26/00  11 December 2000   *

root [0] TFile f(".list/dat99_data-0-0-0-187pb_2jD.list")        
TKey Reading 122 bytes at address 7131
root [1] .ls
TFile**		.list/dat99_data-0-0-0-187pb_2jD.list	
 TFile*		.list/dat99_data-0-0-0-187pb_2jD.list	
  KEY: TEventList	l2jD;1	l2jD
root [2] TEventList *l = (TEventList *)gROOT->FindObject("l2jD");
TKey Reading 6927 bytes at address 204
Creating StreamerInfo for class: TNamed, version: 1

StreamerInfo for class: TNamed, version=1
  BASE          TObject         offset=  0 type=66 Basic ROOT object   
  TString       fName           offset= 12 type=65 object identifier   
  TString       fTitle          offset= 20 type=65 object title        
   i= 0, TObject         type= 66, offset=  0, len=1, method=0
   i= 1, fName           type= 65, offset= 12, len=1, method=265386232
   i= 2, fTitle          type= 65, offset= 20, len=1, method=265386412
StreamerInfo, class:TNamed, name=TObject, fType[0]=66, TStreamerBase, bufpos=57
StreamerInfo, class:TNamed, name=fName, fType[1]=65, TStreamerString, bufpos=67
StreamerInfo, class:TNamed, name=fTitle, fType[2]=65, TStreamerString, bufpos=118
 ReadBuffer for class: TNamed has read 0 bytes

OBJ: TEventList	jDl2jD	
R__v:1
fN:118947840
fSize:119078912
Fatal in <operator new>: storage exhausted 
aborting

and aborting at fList = new Int_t[fSize];  in TEventList::Streamer

      //====process old versions before automatic schema evolution
      b.ReadVersion(&R__s, &R__c);
      TNamed::Streamer(b);
      TNamed::Print();

      b >> fN;
      b >> fSize;
      b >> fDelta;
      cout << "R__v:" << R__v << endl;
      cout << "fN:" << fN << endl;
      cout << "fSize:" << fSize << endl;

      if (fN) {
         fList = new Int_t[fSize];
         b.ReadFastArray(fList,fN);
      }


The data read from the file seem to be misinterpreted before b>> fN;
already.

I'm running root on Debian/ppc and ia32 with the same result.
libc6-2.2 and gcc-2.95.2

The file can be found at
http://darbujan.fzu.cz/~masik/dat99_data-0-0-0-187pb_2jD.list
and seems to be ok in 2.25-03

Thanks in advance for your help.

        Jiri



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:38 MET