I/O

Schema Evolution

DirectoryAutoAdd

Use the new DirectoryAutoAdd facility for the classes:
        TTree, TH1, TEventList, TEntryList, TGraph2D
(and hence their derived classes).
The instances of those classes are now added automatically to the current directory only when Constructe'd with arguments or Clone'd and to the directory they are read from when their are stored directly in a TKey. [Note: the default constructor never adds the object to the current directory]
The directory auto add can still be disabled for instance of TH1 and TGraph2D by setting TH1::AddDirectory.
Additionally one can disable the directory auto add for a specific class by doing:
    TClass::GetClass("myclass")->SetDirectoryAutoAdd(0)
However you might want to also be able to restore the behavior in which case you ought to do:
    TClass *cl = TClass::GetClass("myclass");
    ROOT::DirAutoAdd_t func = cl->GetDirectoryAutoAdd();
    cl->SetDirectoryAutoAdd(0);
TROOT::ReadingObject is marked as deprecated.. It is still set (as it was) but is no longer used by the above mention classes.
NOTE: One side effect of this change, is that instance of TTree, TH1, TEventList, TEntryList, TGraph2D that are retrieved from a TMessage (i.e. from a socket) no longer auto register themselves to the current ROOT directory.