diff --git a/base/src/TFile.cxx b/base/src/TFile.cxx index c940a3ece00e954f396502da5b9d058ce3cafe9a..68d8b0fd5d1128d1b13cef4a3912447b926f39aa 100644 --- a/base/src/TFile.cxx +++ b/base/src/TFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TFile.cxx,v 1.146 2005/11/18 17:45:00 pcanal Exp $ +// @(#)root/base:$Name: $:$Id: TFile.cxx,v 1.147 2005/11/29 05:38:35 pcanal Exp $ // Author: Rene Brun 28/11/94 /************************************************************************* @@ -229,10 +229,9 @@ TFile::TFile(const char *fname1, Option_t *option, const char *ftitle, Int_t com SetName(fname1); SetTitle(ftitle); - TDirectory::Build(); + TDirectory::Build(this, 0); fD = -1; - fFile = this; fFree = 0; fVersion = gROOT->GetVersionInt(); //ROOT version in integer format fUnits = 4; @@ -464,7 +463,7 @@ void TFile::Init(Bool_t create) //*-* Write Directory info Int_t namelen= TNamed::Sizeof(); Int_t nbytes = namelen + TDirectory::Sizeof(); - TKey *key = new TKey(fName,fTitle,IsA(),nbytes); + TKey *key = new TKey(fName, fTitle, IsA(), nbytes, this); fNbytesName = key->GetKeylen() + namelen; fSeekDir = key->GetSeekKey(); fSeekFree = 0; @@ -968,12 +967,12 @@ TList *TFile::GetStreamerInfoList() if (fSeekInfo) { TDirectory::TContext ctx(gDirectory,this); // gFile and gDirectory used in ReadObj - TKey *key = new TKey(); + TKey *key = new TKey(this); char *buffer = new char[fNbytesInfo+1]; char *buf = buffer; Seek(fSeekInfo); ReadBuffer(buf,fNbytesInfo); - key->ReadBuffer(buf); + key->ReadKeyBuffer(buf); list = (TList*)key->ReadObj(); if (list) list->SetOwner(); delete [] buffer; @@ -1239,10 +1238,10 @@ void TFile::ReadFree() // as a single data record // - TKey *headerfree = new TKey(fSeekFree,fNbytesFree); + TKey *headerfree = new TKey(fSeekFree, fNbytesFree, this); headerfree->ReadFile(); char *buffer = headerfree->GetBuffer(); - headerfree->ReadBuffer(buffer); + headerfree->ReadKeyBuffer(buffer); buffer = headerfree->GetBuffer(); while (1) { TFree *afree = new TFree(); @@ -1327,8 +1326,8 @@ Int_t TFile::Recover() classname[nwhc] = '\0'; TDatime::GetDateTime(datime, date, time); if (seekpdir == fSeekDir && strcmp(classname,"TFile") && strcmp(classname,"TBasket")) { - key = new TKey(); - key->ReadBuffer(bufread); + key = new TKey(this); + key->ReadKeyBuffer(bufread); if (!strcmp(key->GetName(),"StreamerInfo")) { fSeekInfo = seekkey; SafeDelete(fInfoCache); @@ -1695,7 +1694,7 @@ void TFile::WriteFree() nbytes += afree->Sizeof(); } if (!nbytes) return; - TKey *key = new TKey(fName,fTitle,IsA(),nbytes); + TKey *key = new TKey(fName,fTitle,IsA(),nbytes,this); if (key->GetSeekKey() == 0) { delete key; return; @@ -1848,12 +1847,12 @@ void TFile::MakeProject(const char *dirname, const char * /*classes*/, // loop on all TStreamerInfo TList *list = 0; if (fSeekInfo) { - TKey *key = new TKey(); + TKey *key = new TKey(this); char *buffer = new char[fNbytesInfo+1]; char *buf = buffer; Seek(fSeekInfo); ReadBuffer(buf,fNbytesInfo); - key->ReadBuffer(buf); + key->ReadKeyBuffer(buf); list = (TList*)key->ReadObj(); delete [] buffer; delete key; @@ -2069,7 +2068,7 @@ void TFile::WriteStreamerInfo() //free previous StreamerInfo record if (fSeekInfo) MakeFree(fSeekInfo,fSeekInfo+fNbytesInfo-1); //Create new key - TKey key(&list,"StreamerInfo",GetBestBuffer()); + TKey key(&list,"StreamerInfo",GetBestBuffer(), this); fKeys->Remove(&key); fSeekInfo = key.GetSeekKey(); fNbytesInfo = key.GetNbytes(); diff --git a/io/src/TFile.cxx b/io/src/TFile.cxx index c940a3ece00e954f396502da5b9d058ce3cafe9a..68d8b0fd5d1128d1b13cef4a3912447b926f39aa 100644 --- a/io/src/TFile.cxx +++ b/io/src/TFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TFile.cxx,v 1.146 2005/11/18 17:45:00 pcanal Exp $ +// @(#)root/base:$Name: $:$Id: TFile.cxx,v 1.147 2005/11/29 05:38:35 pcanal Exp $ // Author: Rene Brun 28/11/94 /************************************************************************* @@ -229,10 +229,9 @@ TFile::TFile(const char *fname1, Option_t *option, const char *ftitle, Int_t com SetName(fname1); SetTitle(ftitle); - TDirectory::Build(); + TDirectory::Build(this, 0); fD = -1; - fFile = this; fFree = 0; fVersion = gROOT->GetVersionInt(); //ROOT version in integer format fUnits = 4; @@ -464,7 +463,7 @@ void TFile::Init(Bool_t create) //*-* Write Directory info Int_t namelen= TNamed::Sizeof(); Int_t nbytes = namelen + TDirectory::Sizeof(); - TKey *key = new TKey(fName,fTitle,IsA(),nbytes); + TKey *key = new TKey(fName, fTitle, IsA(), nbytes, this); fNbytesName = key->GetKeylen() + namelen; fSeekDir = key->GetSeekKey(); fSeekFree = 0; @@ -968,12 +967,12 @@ TList *TFile::GetStreamerInfoList() if (fSeekInfo) { TDirectory::TContext ctx(gDirectory,this); // gFile and gDirectory used in ReadObj - TKey *key = new TKey(); + TKey *key = new TKey(this); char *buffer = new char[fNbytesInfo+1]; char *buf = buffer; Seek(fSeekInfo); ReadBuffer(buf,fNbytesInfo); - key->ReadBuffer(buf); + key->ReadKeyBuffer(buf); list = (TList*)key->ReadObj(); if (list) list->SetOwner(); delete [] buffer; @@ -1239,10 +1238,10 @@ void TFile::ReadFree() // as a single data record // - TKey *headerfree = new TKey(fSeekFree,fNbytesFree); + TKey *headerfree = new TKey(fSeekFree, fNbytesFree, this); headerfree->ReadFile(); char *buffer = headerfree->GetBuffer(); - headerfree->ReadBuffer(buffer); + headerfree->ReadKeyBuffer(buffer); buffer = headerfree->GetBuffer(); while (1) { TFree *afree = new TFree(); @@ -1327,8 +1326,8 @@ Int_t TFile::Recover() classname[nwhc] = '\0'; TDatime::GetDateTime(datime, date, time); if (seekpdir == fSeekDir && strcmp(classname,"TFile") && strcmp(classname,"TBasket")) { - key = new TKey(); - key->ReadBuffer(bufread); + key = new TKey(this); + key->ReadKeyBuffer(bufread); if (!strcmp(key->GetName(),"StreamerInfo")) { fSeekInfo = seekkey; SafeDelete(fInfoCache); @@ -1695,7 +1694,7 @@ void TFile::WriteFree() nbytes += afree->Sizeof(); } if (!nbytes) return; - TKey *key = new TKey(fName,fTitle,IsA(),nbytes); + TKey *key = new TKey(fName,fTitle,IsA(),nbytes,this); if (key->GetSeekKey() == 0) { delete key; return; @@ -1848,12 +1847,12 @@ void TFile::MakeProject(const char *dirname, const char * /*classes*/, // loop on all TStreamerInfo TList *list = 0; if (fSeekInfo) { - TKey *key = new TKey(); + TKey *key = new TKey(this); char *buffer = new char[fNbytesInfo+1]; char *buf = buffer; Seek(fSeekInfo); ReadBuffer(buf,fNbytesInfo); - key->ReadBuffer(buf); + key->ReadKeyBuffer(buf); list = (TList*)key->ReadObj(); delete [] buffer; delete key; @@ -2069,7 +2068,7 @@ void TFile::WriteStreamerInfo() //free previous StreamerInfo record if (fSeekInfo) MakeFree(fSeekInfo,fSeekInfo+fNbytesInfo-1); //Create new key - TKey key(&list,"StreamerInfo",GetBestBuffer()); + TKey key(&list,"StreamerInfo",GetBestBuffer(), this); fKeys->Remove(&key); fSeekInfo = key.GetSeekKey(); fNbytesInfo = key.GetNbytes();