[root] / trunk / core / cont / src / TClassTable.cxx Repository:
ViewVC logotype

Log of /trunk/core/cont/src/TClassTable.cxx

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 46124 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 21 19:54:44 2012 UTC (2 years, 4 months ago) by pcanal
File length: 20189 byte(s)
Diff to previous 46123
Remove incorrect protection again null pointer

Revision 46123 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 21 19:34:06 2012 UTC (2 years, 4 months ago) by pcanal
File length: 20255 byte(s)
Diff to previous 44507
Avoid crash in TClassTable::PrintTable induced by AutoLoading

Revision 44507 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 4 12:30:41 2012 UTC (2 years, 7 months ago) by axel
File length: 20151 byte(s)
Diff to previous 43519
Remove
  using namespace std;
from Riostream.h, which has huge consequences for all of ROOT.
Riostream.h is now a simple wrapper for fstream, iostream, iomanip for backward compatibility; Riosfwd.h simply wraps iosfwd.

Because of templates and their inline functions, Riostream.h needed to be included in headers, too (e.g. TParameter.h), which violated the assumption that Riostream.h is not exposing its using namespace std to headers.
ROOT now requires R__ANSISTREAM, R__SSTREAM, which does not change the set of supported compilers.

Without "using namespace std", several identifiers are now prefixed by std::; e.g. roofit/* source files now have a using namespace std to keep their coding style.
TFile::MakeProject() now generates "using namespace std" to convert the CINT-style class names into C++ ones.

Revision 43519 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 28 01:25:44 2012 UTC (2 years, 9 months ago) by pcanal
File length: 20146 byte(s)
Diff to previous 37531
Fix for coding convention: RS4 (Descriptions of a function or class method shall be in the first comment block after the first)

Revision 37531 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 10 20:38:06 2010 UTC (4 years, 1 month ago) by pcanal
File length: 19949 byte(s)
Diff to previous 34286
Fix several memory leaks (TSchemaRuleSet, TClass, TFolder, stress, TStreamerInfo, TFile, TFree)

Introduce a new preprocessor symbol (R__COMPLETE_MEM_TERMINATION) that allows for
better tracking of memory leak.   When ROOT is compiled with this symbols is defined,
globally held objects will be deleted at the time of the process termination.

With this symbol defined, some tests (root.exe -b -l -q ; test/stress ;) run under
'valgrind --leak-check=yes' with no memory leak reports (but still a few still
reacheable blocks).   However, this does not yet support (i.e. segfault at termination) 
the case where TFunctions are created on the 'CINT' stack (and thus fails roottest) and
some uses of CINT functions for fitting ...  and probably also fails on Windows.

Revision 34286 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 1 20:38:57 2010 UTC (4 years, 6 months ago) by rdm
File length: 19616 byte(s)
Diff to previous 34202
fix format errors related to TString::Form(), TString::Format(), Form()
and Printf().

Revision 34202 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 30 09:10:45 2010 UTC (4 years, 6 months ago) by brun
File length: 19702 byte(s)
Diff to previous 33854
Fix format in Info statement

Revision 33854 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jun 12 14:09:50 2010 UTC (4 years, 7 months ago) by pcanal
File length: 19694 byte(s)
Diff to previous 33114
From Axel and Philippe:
In TClassTable, normalize 'long long' to 'Long64_t' in lookups (as we are already doing on input).

Revision 33114 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 20 19:03:33 2010 UTC (4 years, 9 months ago) by pcanal
File length: 19003 byte(s)
Diff to previous 32821
Reduce possible confusions and conflict by always using in TClass and TStreamerInfo
the version of template instance name with ULong64_t and Long64_t rather than [unsigned] long long.

Revision 32821 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 29 21:38:52 2010 UTC (4 years, 9 months ago) by pcanal
File length: 18982 byte(s)
Diff to previous 32644
Improve the time required to load libraries, in particular at process loading time.
For example the total time to completion of root.exe -b -l -q is cut in half!

We now wait until CINT is initialized before starting to execute any dictionary setup function.
In CINT's allocate function, avoid having to recalculate the 'index' of the G__var_array.
Enhance the performance of TClassEdit by introducing TSplitType which can be reused for a few a
the string based type manipulation that TClass needs to do.
In the implementation of TClassEdit::ShortType and TClassEdit::GetSplit, this patch reduces the 
amount of work done (by reducing the number of calls to TClassEdit::CleanType, in 
particular in the case where we know that the type is already prep-ed)

Revision 32644 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 17 13:58:28 2010 UTC (4 years, 10 months ago) by pcanal
File length: 18940 byte(s)
Diff to previous 30950
Add the ability to feed I/O customization rules from a text
file, the following 3 files are checked at start up;
     $ROOTSYS/etc/class.rules (or ROOTETCDIR/class.rules)
     $HOME/class.rules
     ./class.rules 

Add a short form to the I/O customization rules.  The 2 syntaxes are:
Short form:
   [type=Read] classname membername [attributes=... ] [version=[...] ] [checksum=[...] ] [oldtype=...] [code={...}]
Long form:
   [type=Read] sourceClass=classname [targetclass=newClassname] [ source="type membername; [type2 membername2]" ]
        [target="membername3;membername4"] [attributes=... ] [version=...] [checksum=...] [code={...}|functionname]

Add a new element to the rules: attributes
Currently the only 2 attributes supported are 'Owner' and 'NotOwner' which
indicates to whether the data member 'owns' the objects it is pointing to.

Store all the rules defined for all the classes stored in a TFile in the
same list as the StreamerInfo.   The rules are stored as a sub list of
TObjString and the list is named 'listOfRules'

TClass: when creating or registering a class we now alway remove the 
any part of the class name that is a default template argument of a STL
container. (i.e. the allocator in pair<int,vector<int,allocator> >
which becomes pair<int,vector<int> >)

TList: Improve the performance of RemoveLast by customizing it for TList.

Revision 30950 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 2 17:01:02 2009 UTC (5 years, 2 months ago) by brun
File length: 18751 byte(s)
Diff to previous 29352
Protect TClassTable::Print and TClassTable::PrintTable against fgTable[i]=0

Revision 29352 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 6 15:21:01 2009 UTC (5 years, 6 months ago) by brun
File length: 18709 byte(s)
Diff to previous 28845
Protect TClassTable::Print in case fgSortedTable is not yet set.

Revision 28845 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 8 13:53:44 2009 UTC (5 years, 7 months ago) by rdm
File length: 18643 byte(s)
Diff to previous 25377
changes needed to be able to compile with Solaris CC5 and stlport4 STL
library. Backward compatible with old CC5 STL and other platforms.

Revision 25377 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 9 19:27:44 2008 UTC (6 years, 4 months ago) by pcanal
File length: 18623 byte(s)
Diff to previous 23002
Extend documentation of TClass::SetVersion and TClassTable::ResetClassVersion with information on 'special' version number

Revision 23002 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 7 09:52:26 2008 UTC (6 years, 9 months ago) by pcanal
File length: 18114 byte(s)
Diff to previous 22961
When reading more than one TStreamerInfo for the same versioned
class, we now use the highest possible class version as the current
version of the class.  Practically, we update the class version
when reading new (higher versioned) StreamerInfo until the Class
is actually used (i.e. TClass::GetClassVersion is call directly
or indirectly).

In particular, if a file has several StreamerInfos for the same
versioned class, we will use the highest version number as the
'current' class version (as opposed to the lowest until now).

Revision 22961 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 3 13:32:57 2008 UTC (6 years, 9 months ago) by rdm
File length: 17680 byte(s)
Diff to previous 21231
move the directories:
  base clib cont meta metautils newdelete pcre rint thread unix utils
  winnt zip
under the new core meta directory.

Revision 21231 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 6 15:22:14 2007 UTC (7 years, 1 month ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17680 byte(s)
Diff to previous 20882
change all occurances where %x is used to format a pointer to %lx.

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17678 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17678 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17732 byte(s)
Diff to previous 19041
remove :$ from tag line

Revision 19041 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 15 12:36:05 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17742 byte(s)
Diff to previous 17567
Add a new static function TClassTavle::At
    // Returns class at index from sorted class table. Don't use this iterator
    // while modifying the class table. The class table can be modified
    // when making calls like TClass::GetClass(), etc.
    // Returns 0 if index points beyond last class name.

Revision 17567 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 29 15:53:35 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17212 byte(s)
Diff to previous 17351
-Replace calls to gROOT->GetClass by TClass::GetClass
-Remove unused references to TROOT.h

Revision 17351 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 16 07:45:16 2007 UTC (8 years ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17208 byte(s)
Diff to previous 16024
Remove dependency on TMath.h

Revision 16024 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 16 14:50:24 2006 UTC (8 years, 5 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17198 byte(s)
Diff to previous 13258
Extend description of Next() to warn about not using in cases where
the class table can be extended, like when calling gROOT->GetClass(), etc.

Revision 13258 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 16 20:11:59 2005 UTC (9 years, 2 months ago) by pcanal
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17048 byte(s)
Diff to previous 12605
White spaces and comments update

Revision 12605 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Sep 3 07:54:00 2005 UTC (9 years, 4 months ago) by pcanal
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17053 byte(s)
Diff to previous 12601
Fix to follow coding conventions

Revision 12601 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Sep 3 00:48:25 2005 UTC (9 years, 4 months ago) by pcanal
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17024 byte(s)
Diff to previous 12556
Fix to follow coding conventions

Revision 12556 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 30 02:45:05 2005 UTC (9 years, 4 months ago) by pcanal
Original Path: trunk/cont/src/TClassTable.cxx
File length: 17008 byte(s)
Diff to previous 12117
Changes to make the rulechecker happy in directory cont
They are a few left.

Revision 12117 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 22 17:01:55 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16981 byte(s)
Diff to previous 10217
Move #include "RConfig.h" as the first include.
This is necessary on Alpha/cxx where the coming RConfig.h
sets tehdefines R__ANSISTREAM.
With this fix Reflex, Cintex and Roofit compiles on alpha.

Revision 10217 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 5 15:41:04 2004 UTC (10 years, 3 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16961 byte(s)
Diff to previous 10205
fix indentation.

Revision 10205 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 5 07:04:35 2004 UTC (10 years, 3 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16943 byte(s)
Diff to previous 10204
Fix a compiler warning in latest Federico's patch.

Revision 10204 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 5 07:02:21 2004 UTC (10 years, 3 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16941 byte(s)
Diff to previous 9642
From Federico Carminati
  I have attached few mods necessary to have root working with the IBM
compiler on the Mac. It now works through all the benchmarks, so you can
recompile on G5 with optimisation and quote a performance finally.  The
remaining changes I had to make were:

- Make DYLD_LIBRARY_PATH point to the right place (SHAME!)

- Avoid dynamic casting of null pointers. This is a phylosophical point
which can be debated. I see pro and cons to have a compiler that does not
like them, however I had to protect the code in a couple of places.

- Remove the invalid trap from main programs. I consider this almost a bug
of the compiler.

- Remove -flat-namespace from linking libraries. Again I think the
behaviour is highly debatable, but I know the linker should get better in
Tiger

- Add -DR__BROKEN_FUNCTION_TEMPLATES to the compilation

Please check the mods and put them in the head asap so they do not get out
of synch. Let me know about the performance on the G5, I am curious to see
whether we have gained anything!!!

Revision 9642 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 30 20:34:46 2004 UTC (10 years, 5 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16890 byte(s)
Diff to previous 9422
From Philippe:
This patch should remove a Warning in TClassTable

Revision 9422 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 8 00:28:39 2004 UTC (10 years, 6 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16534 byte(s)
Diff to previous 8192
allow for longer class name when printing table.

Revision 8192 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 13 11:25:37 2004 UTC (10 years, 11 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16510 byte(s)
Diff to previous 8095
fixes so loading a plugin containing libCore does not crash on MacOS X.

Revision 8095 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 30 18:27:29 2004 UTC (10 years, 11 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16367 byte(s)
Diff to previous 8091
Patch from Philippe fixing a problem reported by Axel Naumann.

Revision 8091 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 30 08:12:57 2004 UTC (10 years, 11 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16330 byte(s)
Diff to previous 8087
Withdraw all changes made since yesterday night.
The changes were unfortunately introduced withouth enough testing.

Revision 8087 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 29 23:08:16 2004 UTC (10 years, 11 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16367 byte(s)
Diff to previous 7880
From Philippe:
This patch should resolve completely the issue discovered by Minos (related to
typename being typedefs).  It also repairs the I/O for fixed size array of
TObject.

TString:
        add constructor and operator= taking a std::string argument

TROOT:
        GetClass now properly resolve templateClass<typedef>.
      Previously the typedef resolution was restricted to the full name.

TClassTable:
        Look for an existing TClass directly in TROOT::fListOfClasses to
        avoid the potential loading behavior of TROOT::GetClass

TCint::UpdateClassInfo
        Also look for possible alias name in the list of TClass objects.
        In particular, depending on the load order of libraries and file,
        the Emulated class for container<int> might be container<Int_t> or
        vce et versa.

TClass::Init
        When we have a templated class, also look for existing Emulated
        class which may have a different name.

TStreamerElement/TStreamerInfo
        Use the name with resolved typedef in the TStreamerElement.
        Also repair the I/O for fixed size array of TObjects.

TClassEdit:
        Add a utility to resolve the typedefs inside a typename.
        This resolution has 2 modes.  One where it resolved all
        typedefs which should be used to compare 2 typename and
        establish equality.  A second where it resolved all
        typedefs __except__ for the ROOT integral type typedefs,
        this version is used to create the typename that will be
        save on file.  This is necessary to avoid the replacement
        of (for example) Long64_t by its platform dependent version.

Revision 7880 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jan 10 10:52:31 2004 UTC (11 years ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 16329 byte(s)
Diff to previous 6767
From Philippe:

This mega patch introduces a new implementation of the STL I/O
which is backward and forward compatible.  In addition this is more
exactly a new implementation or an extension of the container I/O.

We are introducing a new abstract interface:
"TVirtualContainerProxy", which can be implemented to present a
proxy to any collection which the I/O (and TTreeFormula) can use
then transparently.

The TVirtualContainerProxy interface allows to the I/O system to
request some information and to execute some essential function of
the container:
   what kind of object/data does it contain
   does it contain pointers
   how to insert data into the container
   how to retrieve an array of pointer to the elements inside
   how to create a collection object
   how to clear the collection
   how to resize the collection
   how to streamer the collection (if needed)
   how to calculate the sizeof the collection
   how to calculate the number of elements of the collection.

Using those primitives, the I/O and TTreeFormula should be able to
access any collection.   The I/O should also be able to handle the
splitting of collections that can be split (i.e. contains a single
type of object/data).

The current compromise selected between code duplication,
performance of the I/O of TClonesArray and vector of pointers and
the performance of the I/O of other containers, was to have on
function handle all collection as if they were a C-style array of
pointers to data.  This implies for example that the I/O of vector
of object current passes via the construction of temporary array
of pointer.  The cost of this construction is usually ~Qjust~R the
cost of calculating the addresses of the elements and assigning it
to an array element.

Registering a collection proxy will be similar to
     static int dummy = GenerateInitInstance((CollectType*)0x0)-
>AdoptCollectionProxy(new CollectTypeProxy));

Follows a few details on the modifications made to some of the
files and classes.

Bytes.h:
   Work around a problem in the MSVC++ 6.0 optimizer.  This should
not affect other compilers.

String:
   Included the std::string dictionary into G__Base2.cxx, this
insures its presence at all time.
   Added a new file string.cxx holding the streamer for
std::string.

RConfig.h
   Added proper ansi stream configuration for AIX, KCC
   Added template specialization defect for MSVC

TBrowser
   Start adding the ability to browser non TObject classes

TBuffer
   To handle the reading and writing array of objects, added:
     Int_t    CheckByteCount(UInt_t startpos, UInt_t bcnt, const
TClass *clss, const char* classname);
     Int_t    CheckByteCount(UInt_t startpos, UInt_t bcnt, const
char *classname);
     void     ReadFastArray(void  *start , TClass *cl, Int_t n=1,
TMemberStreamer *s=0);
     void     ReadFastArray(void **startp, TClass *cl, Int_t n=1,
Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0);
     void     WriteFastArray(void  *start,  TClass *cl, Int_t n=1,
TMemberStreamer *s=0);
     Int_t    WriteFastArray(void **startp, TClass *cl, Int_t n=1,
Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0);

TROOT
   Enhancement to make the access to gROOT not dependent for the
library loading order.  In particular we added:
      ROOT::GetROOT()
   which should be used instead of gROOT.

   Improve support for STL.  In particular, now STL containers do
have a corresponding TClass object


TRealData
   Replace SetStreamer by AdoptStreamer that allow to use not only
a streamer function but also streamer object (allowing streamer
with a state for Foreign classes)

TString:
   Improve streamer performance

TSystem:
   More consistency of the return value of TSystem::CompileMacro

build/unix/makecintdlls.sh
   Stop making the string.dll

config:
   enhance sgicc makefiles

cont:
   fix TBits::operator=
   TClassTable now warns for duplicate only for non stl classes
   TClonesArray fix a typo

gpad:
   Add a new class TInspectObject to enable inspect non TObject
classes
   TRootBrowser : enable inspect non TObject classes

TFormula/TTreeFormula
   To enhance performance switch from using one array fOper which
contained the operation code and its arguments to using 2 arrays
fActions and fActionParams to store respectively the operation and
its parameters.
   A new function Convert is used to convert old version from the
fOper to fActions.  This allows cleaner coding and offer
optimization opportunities.

TTreePlayer
   Start adding support in MakeClass for STL containers.

TRint/TProofServ
   Insure the loading of the string support

Event.cxx
   make sure to avoid memory over-write

stress.cxx
   Add new parameters
      stress <nevent> <style> <subbench> <portion>
   if <subbench> is 1 or higher, print the benchmark results after
each test.  This allows understand
   which test is affect by a performance change.
   portion is a binary field to indicate which test to run.  This
allows to focus on a particular test.

TVirtualCollectionProxy
   Abstract interface used to access any type of containers from
the I/O system and TTreeFormula. See TVectorProxy and
TEmulatedVectorProxy for examples.

TEmulatedVectorProxy
   Implementation of a std::vector proxy to be able to read a
std::vector without any libraries.

TVectorProxy
   Implementation of TVirtualCollectionProxy for a std::vector for
which we have the library.

TStreamerInfo.cxx
   Split in 3 files:  TStreamerInfo.cxx
TStreamerInfoReadBuffer.cxx TStreamerInfoWriteBuffer.cxx

   All the ReadBuffer, ReadBufferClones and the new ReadBufferSTL
(similarly for  WriteBuffer) have been factorized into one
function and 2 short wrappers.  The new main function expect an
array of pointer to the objects (this array is most often of size
one).

   TClonesArray objects pass GetObjectRef(0) to the common
ReadBuffer
   vector<bla*> v pass &(v[0])
   vector<bla> needs to create an intermediary array to hold the
address

   This mechanism is sometimes not optimal (vector<blah>) but
allows extremely flexibly and extension.  Basically, to add
support for a new container type using the StreamerInfo mechanism
(in particular allows splitting), one 'just' need to implement a
TVirtualCollectionProxy, which, in particular, will return an
array of address to the object it contains.  Even std::map can be
handled with this mechanism, since, for I/O purposes, it can be
consider as a container of pairs.

   Add a few optimization, including more caching via a new array
of a new struct (fComp).

   Fixed a problem (re)introduced while implementing the Foreign
class CheckSum.  Doing:
      class Event;
      f = new TFile("Event.root");
   resulted in errors.

TCint
   Add proper support for TClass of STL containers. Fix a memory
leak.
   Add support for load TClass via a typedef.
   Fix a problem with multiple inheritance

TClass
   Fixed a problem (re)introduced while implementing the Foreign
class CheckSum.  Doing:
      class Event;
      f = new TFile("Event.root");
   resulted in errors.
   Add a

TClass/TGenericClassInfo/TDataMember
   Add support for a new interface (TVirtualCollectionProxy)
useable for STL containers or any user defined containers.
   Add support for streamer with are objects (as opposed to free
standing function or methods).  This allows the user a greater
flexibility in writing a streamer.
   Add a few optimizations
   Add CanSplit to answer the question for a whole Class (for
example some collection can not be splitted).

TClassStreamer
   New class to wrap a class wide streamer

ClassStreamerFunc_t
   typedef for a class wide streamer function

TMemberStreamer
   New class to wrap a specific class member streamer

MemberStreamerFunc_t
   typedef for  a specific class member streamer function

RootStreamer
   Macro to specify a free standing streamer object or function
for a class
   For example:
      RootStreamer(string,std_string_streamer);

TStreamerElement:
   A couple of optimization/simplification.
   Add support for the new STL I/O
   Extend the useful

TBranchElement:
   add a connection to the proper TVirtualCollectionProxy
   add support for STL containers (non-split and split mode)

TTree
   Make the function TTree::GetMakeClass NON-virtual for better
efficiency
   Add support for STL containers

TBasket
   Left (in comment) a yet unproved improvement proposed by
Victor.  The preliminary tests were inconclusive performance wise
and it had (seemingly) problem with backward and forward
compatibility.

TBranch
   Performance improvements

metautils
   This is a new package for C++ files shared between rootcint and
meta.
   It contains TClassEdit a class to help determine some property
of a class given its class name (stl, template, etc).

utils
   Introduced a new file RStl.cxx to start separating rootcint in
modules.
   Modified rootcint to support the new STL I/O methods.
   In particular a new class RStl is in charge of doing the
generating of code for STL containers.

Revision 6767 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 23 22:18:37 2003 UTC (11 years, 7 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 15874 byte(s)
Diff to previous 6625
new method TMap::GetTable() to get const access to the hashtable containing
the (key,value) pairs. Using the pointer to this table one can easily
iterate over the TPairs stored in the table. Changed the internal TAssoc
class to TPair to be more inline with STL naming. Provide simple TAssoc
typedef for backward compatibility.

Revision 6625 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 15 11:02:18 2003 UTC (11 years, 8 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 15875 byte(s)
Diff to previous 5489
In cont/src/TClassTable.cxx:
::Warning("TClassTable::Add", "class %s allready in TClassTable", cname);

The correct spelling is "already".
(Thanks Paul Balm)

Revision 5489 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 25 10:40:51 2002 UTC (12 years, 3 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 15877 byte(s)
Diff to previous 5240
fix typo in comment.

Revision 5240 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 9 15:21:39 2002 UTC (12 years, 4 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 15937 byte(s)
Diff to previous 5006
From Philippe:
In TPluginManager.cxx:
        fix debug ouput to work in case of missing handler.
In TClassTable.cxx:
        fix the debug output when printing the content of the table of dictionaries.
In rootcint.cxx
        allow using classes from the same namespace as a data member

Revision 5006 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 24 13:22:27 2002 UTC (12 years, 6 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 15423 byte(s)
Diff to previous 4516
implement Print() for TMapTypeToClassRec. Some cleanups.

Revision 4516 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 10 21:32:09 2002 UTC (12 years, 8 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 15291 byte(s)
Diff to previous 4514
Code cleanup by Philippe

Revision 4514 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 10 11:07:22 2002 UTC (12 years, 8 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 15210 byte(s)
Diff to previous 4498
added define R__GLOBALSTL for the old aCC compiler that has all STL classes
in global namespace. Changed all references to __HP_aCC>=53000 to use this
new define. Also new aCC does not have the R__TEMPLATE_OVERLOAD_BUG anymore.

Revision 4498 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 9 20:22:01 2002 UTC (12 years, 8 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 15258 byte(s)
Diff to previous 4460
New attempt to introduce the new additions (Philippe) to the I/O system
as well as as the new version of ClassDef/ClassImp.
With the additions to the I/O, it is now possible to generate
a dictionary for classes not instrumented with ClassDef.

Revision 4460 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon May 6 10:11:08 2002 UTC (12 years, 8 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 10917 byte(s)
Diff to previous 4446
Revert to the 3.03/05 situation.
The new I/O scheme still requires more work due
to portability problems and the size of the dictionaries.

Revision 4446 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 3 14:30:43 2002 UTC (12 years, 8 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 14520 byte(s)
Diff to previous 3794
Introduce a long patch by Philippe. With this patch, ROOT I/O
should be able to support foreign not-ROOT instrumented classes.
More information will come later.
This patch is tentatively put in the CVS head to facilitate
testing on all platforms.

Revision 3794 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jan 27 16:49:43 2002 UTC (12 years, 11 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 10917 byte(s)
Diff to previous 3359
Remove non-necessary declarations of static functions to remove warnings on aCC
of the style:
Warning 495: "base/src/TROOT.cxx", line 159 # The linkage directive is ignored for an object or function declared static.
       static void CleanUpROOTAtExit();

Revision 3359 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Dec 2 16:50:08 2001 UTC (13 years, 1 month ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 10988 byte(s)
Diff to previous 3266
From Philippe:
  Update the handling of unloading a library so that
the left over TClass objects are properly marked and
recognized as describing a class for which we do not
have the C++ code (the state is similar but different
from being a 'fake TClass'.

Revision 3266 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 21 07:38:19 2001 UTC (13 years, 2 months ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 11110 byte(s)
Diff to previous 2493
This patches(by Philippe) enables TSystem::Unload.  It also properly unloads the
shared library by removing the old information from the TClassTable but
keeping the existing TClass object.  The TClass object are needed even
after the library is destroy in some cases where the library is
unloaded before the files are written (it happens on some compiler at
exit time).

Revision 2493 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jun 30 13:08:20 2001 UTC (13 years, 6 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 10788 byte(s)
Diff to previous 2439
correct warning message.

Revision 2439 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 22 16:10:23 2001 UTC (13 years, 7 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 10775 byte(s)
Diff to previous 2040
make code more const char* correct (i.e. "strings" must be const char*) and
declare several functions extern "C". Mods by Dave Morrison.

Revision 2040 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Apr 21 17:21:44 2001 UTC (13 years, 9 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 10705 byte(s)
Diff to previous 2024
make RemoveClass() a noop so TClass objects are never deleted. This should
fix the problem of saving files still open when in the TROOT dtor.

Revision 2024 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 20 17:30:28 2001 UTC (13 years, 9 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 10555 byte(s)
Diff to previous 1285
typo in comment.

Revision 1285 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 26 14:17:33 2000 UTC (14 years, 1 month ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 10558 byte(s)
Diff to previous 1208
Support for wildcarding in function Print

Revision 1208 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 13 16:05:18 2000 UTC (14 years, 1 month ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 9326 byte(s)
Diff to previous 1207
A few more fixes related to the "const" changes.

Revision 1207 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 13 15:56:17 2000 UTC (14 years, 1 month ago) by brun
Original Path: trunk/cont/src/TClassTable.cxx
File length: 9319 byte(s)
Diff to previous 861
Forgot to update the Dump, ls and Print of these classes.

Revision 861 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 2 18:17:54 2000 UTC (14 years, 2 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 9322 byte(s)
Diff to previous 3
Added argument pragmabits to AddClass(). These bits tell, a.o., if the
Streamer() can be bypassed (in the new automatic I/O implementation).
The bits map to the -!+ options that can be specified in the LinkDef.h
file for each class. The bits can be retrieved with the GetPragmaBits()
method. There is an enum containing constants to test the bits.

Revision 3 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 16 17:00:58 2000 UTC (14 years, 8 months ago) by rdm
Original Path: trunk/cont/src/TClassTable.cxx
File length: 8822 byte(s)
Copied from: branches/rdm/cont/src/TClassTable.cxx revision 2
Diff to previous 2
This commit was generated by cvs2svn to compensate for changes in r2,
which included commits to RCS files with non-trunk default branches.

Revision 2 - (view) (download) (as text) (annotate) - [select for diffs]
Added Tue May 16 17:00:58 2000 UTC (14 years, 8 months ago) by rdm
Original Path: branches/rdm/cont/src/TClassTable.cxx
File length: 8822 byte(s)
Initial import of ROOT into CVS

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9