[root] / trunk / core / meta / src / TDataMember.cxx Repository:
ViewVC logotype

Log of /trunk/core/meta/src/TDataMember.cxx

Parent Directory Parent Directory


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

Revision 48043 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 14 12:20:32 2012 UTC (2 years, 1 month ago) by rdm
File length: 29143 byte(s)
Diff to previous 47939
change gCint -> gCling (and not the generic gInterpreter as we'll stay for a
while with cling ;-) ).

Revision 47939 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Dec 9 19:16:02 2012 UTC (2 years, 1 month ago) by rdm
File length: 29114 byte(s)
Diff to previous 43276
Here we go:
- Remove CINT
- Update configure to not have CINT references
- Update Makefile to not have CINT references
- Remove all references to G__BIT_xxxx
More cleaning in next rounds.

Revision 43276 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 7 17:13:42 2012 UTC (2 years, 10 months ago) by pcanal
File length: 29120 byte(s)
Diff to previous 40638
Coverity number 35355,35805,35666,35708,35511,35782,35782,35642,35787,35796,35653,35806,35667,
35670,35809,35810,35671,35673,35812,35688,35283,35824,35689,35825,35690,35691,35826,35827,35692,
35635,35636,35275
about missing operator= and/or copy constructors.

Revision 40638 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 18 20:24:56 2011 UTC (3 years, 5 months ago) by pcanal
File length: 30247 byte(s)
Diff to previous 36925
Use the new CINT serial number of the list of global object to avoid spurrious recreation of the list of globals.   When looking for the value corresponding to an enum type, skip global that are not enums. (This improves the speed of TFile::Open per 60%.  In TCint::Autoload use TEnv::Lookup rather thatn TEnv::GetValue to skip the search through all the possible namespaces.

Revision 36925 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 25 06:22:59 2010 UTC (4 years, 1 month ago) by pcanal
File length: 30164 byte(s)
Diff to previous 36923
small typo

Revision 36923 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 25 05:35:46 2010 UTC (4 years, 1 month ago) by pcanal
File length: 30163 byte(s)
Diff to previous 36707
Fix an order of initialization problem visible on MacOS as the infamous:

(macpro) [211] ./stressHistogram
....
Test  3: Projection with Range for Histograms and Profiles................OK
Error in <TStreamerInfo::Build>: TProfile2D, unknown type: EErrorType fErrorMode

Revision 36707 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 16 20:00:58 2010 UTC (4 years, 2 months ago) by pcanal
File length: 30033 byte(s)
Diff to previous 36139
Add more 'aliases' to the rootmap entries for the GenVector library
to work around CINT and autoloader deficiency with template default parameter.

Insure that MakeProject generate the dictionary for std::pair instances
explicitly used in STL collections.

Allow the seamless schema evolution from map<a,b> to vector<pair<a,b> >.

Revision 36139 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 7 06:58:16 2010 UTC (4 years, 3 months ago) by brun
File length: 29949 byte(s)
Diff to previous 35870
Fix string_overflow. coverity CID 10825

Revision 35870 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 29 21:25:52 2010 UTC (4 years, 3 months ago) by pcanal
File length: 29835 byte(s)
Diff to previous 35504
Fix coverity report 10588 (unused value)

Revision 35504 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 21 06:56:53 2010 UTC (4 years, 4 months ago) by brun
File length: 28269 byte(s)
Diff to previous 35478
Fix calls to strlcpy

Revision 35478 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 20 18:25:34 2010 UTC (4 years, 4 months ago) by brun
File length: 28292 byte(s)
Diff to previous 35454
Replace strncpy by strlcpy

Revision 35454 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 20 13:16:31 2010 UTC (4 years, 4 months ago) by brun
File length: 28292 byte(s)
Diff to previous 35450
Fix strncpy calls

Revision 35450 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 20 12:36:11 2010 UTC (4 years, 4 months ago) by pcanal
File length: 28270 byte(s)
Diff to previous 34885
Fix Coverity reports

TDatabasePDG.cxx: #11418 getc returns an int
TTree.cxx: #10577 unused variable
TTreeFormula.cxx: #10795,#10796,#13272,#13273,#13274,#14173 strcat -> strncat, strcpy -> strncpy
TTreePlayer.cxx: #10891,#10892,#14169,#14170,#14172 strcpy -> strncpy
TStreamerElement.cxx: #12537,#13200,#13318,#13586,#13587,#13588,#13589,#13590,#13591,#13596,#13597,#13598 strcpy,sprintf -> strncpy,snprintf (or TString)
TStreamerInfo.cxx: #13470,#13787,#13788 strcpy,sprintf -> strncpy,snprintf (or TString)
TBranchProxy.cxx: null pointer dereference.
TBranch.cxx: #10689 null pointer dereference.
loadfile.cxx: #10767,#12387.#12388,#12389,#12521,#12522,#13514,etc.. strcpy,sprintf -> strncpy,snprintf  (or TString)
TFileDrawMap.cxx: #10893,#10894,#10895,#13460,#14176,#14177,#14718,#14179 strcpy,sprintf -> strncpy,snprintf  (or TString)
TFile.cxx: #13789,#13193,#13450 strcpy,sprintf -> strncpy,snprintf  (or TString)
TMethod.cxx: #10802,#13310 strcpy,sprintf -> strncpy,snprintf  (or TString)
TClass.cxx: #10814,#13122,#13467,#13468,#13490 strcpy,sprintf -> strncpy,snprintf  (or TString)
TDataMember.cxx: #10825,#13241,#13329,#13330,#13584 strcpy,sprintf -> strncpy,snprintf  (or TString)
TFormula.cxx: #13263,#13783 sprintf -> snprintf or TString
stlLoader.cxx: #13599 static array -> G__FastAllocString

Revision 34885 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 20 13:33:08 2010 UTC (4 years, 5 months ago) by pcanal
File length: 28348 byte(s)
Diff to previous 32644
Fix uninitialized var

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: 28310 byte(s)
Diff to previous 27157
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 27157 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 15 14:05:12 2009 UTC (6 years ago) by brun
File length: 28309 byte(s)
Diff to previous 26606
From Axel:
Replace all references to Text_t by char, still keeping the definition in Rtypes.h

Revision 26606 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 2 20:36:09 2008 UTC (6 years, 1 month ago) by pcanal
File length: 28311 byte(s)
Diff to previous 24079
Following Igor Smirnov analysis fix several memory leaks, add checks for null pointer dereference, fix or add copy constructor and assignment operator when applicable, make the copy constructor and assignment operator private when the objects are not intended to be copiable.

Revision 24079 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat May 31 20:28:04 2008 UTC (6 years, 7 months ago) by brun
File length: 28043 byte(s)
Diff to previous 24077
Add missing include stdlib required by gcc4.3

Revision 24077 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat May 31 19:39:09 2008 UTC (6 years, 7 months ago) by brun
File length: 28021 byte(s)
Diff to previous 23426
Extend the TInterpreter class to support the CINT API used so far by ROOT.
The concrete implementation of the class is in TCint.
The new functions are essentially interfaces to the existing CINT C++ classes
like G__ClassInfo, G__CallFunc, G__DataMemberInfo, G__MethodInfo, G__TypeInfo
and G__TypedefInfo. Most of these functions will call the Reflex interface
once the CINT/Reflex interface will be available later this year.
All direct calls to CINT are replaced by calls like gCint->ClassInfo_xxx where gCint
points to the TCint implementation.
The existing calls to TCint via gInterpreter are kept because on Windows
gInterpreter does not call directly TCint, but instead call TWin32InterpreterProxy
that in turns call TCint.
On Linux and Mac, gInterpreter and gCint are equivalent.

Once the transformation using gCint will be completed, it will be possible
to specify at startup time which version of CINT (CINT or CINT7) by loading
dynamically TCint or TCint7.--This line, and those below, will be ignored--

M    core/meta/src/TStreamerElement.cxx
M    core/meta/src/TCint.cxx
M    core/meta/src/TGlobal.cxx
M    core/meta/src/TBaseClass.cxx
M    core/meta/src/TDataMember.cxx
M    core/meta/src/TInterpreter.cxx
M    core/meta/src/TClass.cxx
M    core/meta/src/TMethodArg.cxx
M    core/meta/src/TDataType.cxx
M    core/meta/src/TMethodCall.cxx
M    core/meta/src/TIsAProxy.cxx
M    core/meta/src/TMethod.cxx
M    core/meta/src/TFunction.cxx
M    core/meta/inc/TClass.h
M    core/meta/inc/TDictionary.h
M    core/meta/inc/TMethodArg.h
M    core/meta/inc/TDataType.h
M    core/meta/inc/TMethodCall.h
M    core/meta/inc/TMethod.h
M    core/meta/inc/TFunction.h
M    core/meta/inc/TCint.h
M    core/meta/inc/TGlobal.h
M    core/meta/inc/TBaseClass.h
M    core/meta/inc/TDataMember.h
M    core/meta/inc/TInterpreter.h
M    core/thread/src/TThread.cxx
M    core/base/src/TVirtualFitter.cxx
M    core/base/src/TStorage.cxx
M    core/base/src/TQConnection.cxx
M    core/base/src/TROOT.cxx
M    core/base/src/TSystem.cxx
M    core/base/src/TQObject.cxx
M    core/rint/src/TRint.cxx
M    core/rint/src/TTabCom.cxx
M    math/foam/src/TFoam.cxx
M    math/minuit2/src/TFitterMinuit.cxx
M    math/mathcore/src/FunctorCint.cxx
M    math/minuit/src/TMinuit.cxx
M    tree/tree/src/TTree.cxx
M    tree/tree/src/TSelectorCint.cxx
M    tree/tree/src/TSelector.cxx
M    tree/tree/inc/TSelectorCint.h
M    roofit/roofitcore/src/RooGenCategory.cxx
M    roofit/roofitcore/src/RooWorkspace.cxx
M    hist/hist/src/TF1.cxx
M    gui/guibuilder/src/TGuiBldDragManager.cxx
M    net/alien/inc/TAlienSystem.h

Revision 23426 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 23 09:43:33 2008 UTC (6 years, 9 months ago) by brun
File length: 27650 byte(s)
Diff to previous 22961
Fix dangerous shadowed variable.

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: 27647 byte(s)
Diff to previous 20882
move the directories:
  base clib cont meta metautils newdelete pcre rint thread unix utils
  winnt zip
under the new core meta directory.

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/meta/src/TDataMember.cxx
File length: 27647 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/meta/src/TDataMember.cxx
File length: 27647 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/meta/src/TDataMember.cxx
File length: 27701 byte(s)
Diff to previous 19730
remove :$ from tag line

Revision 19730 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 30 15:59:32 2007 UTC (7 years, 4 months ago) by pcanal
Original Path: trunk/meta/src/TDataMember.cxx
File length: 27711 byte(s)
Diff to previous 17568
From Scott Snyder:

This is addressing some instances where root was showing O(N^2)
behavior with the number of defined classes/typedefs that were taking
a lot of time in the Atlas offline software.

Two instances of this were in TClass::Init and TCint::UpdateClassInfo.
Here, when a new class was created/updated, we would scan through
all existing classes looking for any where the names match after
full typedef expansion. This was particularly expensive since
the typedef expansion requires scanning through the entire
typedef table, potentially several times per class.

I addressed this by introducing a hash table, mapping from
the typedef-expanded name to the original class name.
An entry is made in the table only if those names
are different. So, to test for a duplicate, one can then
just look up the typedef-expanded name in the hash table,
rather than scanning all classes. For each hit,
one then looks up the class using the original name.
(We also need to do another lookup in the class list
using the typedef-expanded name if it's different.)
This eliminates the N^2 behavior here, and drastically
reduces the number of expensive typedef expansions.

One irregularity is that the two places that this happens
do the typedef expansion somewhat differently: one just expands
the name directly, but the other runs the name through
TClassEdit::ShortType with kDropStlDefault first. It's not
clear to me why this is done differently in the two places,
so i've retained this behavior, maintaining two separate
hash tables. It would be cheaper, though, if the same expansion
could be used in both places.

The other place that i made changes was in TCint::UpdateListOfTypes.
This was scanning through all the cint typedefs each time GetListOfTypes
was called to possibly add new ones to the root list. I changed this
so that it only scans the typedefs that are new since the last call,
going by the cint typedef index. But if the number of cint typedefs
has decreased since the last call, then we rescan the complete table.
This may not catch all possible cases where items have been deleted
from the cint table and then something else added --- to really
do that right, one would probably want a hook it the cint scrupto
routines.

This should now properly handle unload/reload in TCint::UpdateListOfTypes.
To do this, i added a counter in cint that gets bumped every time
the dictionary is rewound. We can thus test to see if that changed
to tell if a rewind has happened since the last call.

I also updated TClass so that the typedef mappings get removed
from the hash table when the TClass is deleted. To make that faster,
i used an additional status bit to flag if the TClass had created
any typedef map nodes.

Revision 17568 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 29 16:14:25 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 27614 byte(s)
Diff to previous 17494
-Replace calls to gROOT->GetClass by TClass::GetClass
-Remove unused references to TROOT.h

Revision 17494 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jan 24 21:28:41 2007 UTC (8 years ago) by pcanal
Original Path: trunk/meta/src/TDataMember.cxx
File length: 27610 byte(s)
Diff to previous 15742
In meta (and TRealData) increase the offset from Int_t to Long_t to properly support some use case (pyroot) on 64 bits architecture

Revision 15742 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jul 9 05:27:55 2006 UTC (8 years, 6 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 27608 byte(s)
Diff to previous 15176
From Eddy:
Fix many typos in comments

Revision 15176 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 26 09:27:12 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 27603 byte(s)
Diff to previous 15168
Fix coding conventions violations

Revision 15168 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 24 15:10:47 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 27540 byte(s)
Diff to previous 15134
Fix coding conventions violations

Revision 15134 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 23 04:47:42 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 27463 byte(s)
Diff to previous 13425
From Federico Carminati:

"I have implemented all copy and equal operators needed to silence all
warnings in AliRoot, as requested. I have implemented shallow copies as
would do the default operators synthetized by the compiler.
Most operators are protected. If users complain, you just have to move
them into the public area, but class derivation is of course supported.
It has been a terrible job, I have modified 278 files, but the changes
are backward compabile, and this goes a long way to permitting user to
use the effc++ flag with root headers."

Revision 13425 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 1 11:32:38 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 25854 byte(s)
Diff to previous 13258
Fix a mismatch between new and delete in the main constructor (array tokens)

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/meta/src/TDataMember.cxx
File length: 25848 byte(s)
Diff to previous 12739
White spaces and comments update

Revision 12739 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Sep 18 13:07:40 2005 UTC (9 years, 4 months ago) by rdm
Original Path: trunk/meta/src/TDataMember.cxx
File length: 25713 byte(s)
Diff to previous 12687
some more coding style violation fixes.

Revision 12687 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 8 11:27:19 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 25656 byte(s)
Diff to previous 11213
From Matthieu de Naurois:
Fix to get SUBMENU option to work again

Revision 11213 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 3 08:04:16 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 25597 byte(s)
Diff to previous 10583
From Ilka:
fix for the context submenu appearence when the menu entries are of enum type defined in the class scope.
- TAttImage.h: for fImageQuality added // *OPTION...; for SetImageQuality // *SUBMENU*
- TDataMember.cxx: added the case when an option data member has enum type defined in the class scope

Revision 10583 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 22 15:53:41 2004 UTC (10 years, 2 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 25388 byte(s)
Diff to previous 9506
Fix in the constructor in case of a "const enum"

Revision 9506 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 13 05:46:04 2004 UTC (10 years, 6 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 25359 byte(s)
Diff to previous 8372
From Philippe
This patches insures that TDataMember::G/SetterMethod properly respect the
OPTION given in the header file.

Revision 8372 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 12 00:31:22 2004 UTC (10 years, 10 months ago) by rdm
Original Path: trunk/meta/src/TDataMember.cxx
File length: 24814 byte(s)
Diff to previous 7880
various small comment typos.

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/meta/src/TDataMember.cxx
File length: 24807 byte(s)
Diff to previous 7743
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 7743 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 12 17:35:59 2003 UTC (11 years, 1 month ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 23915 byte(s)
Diff to previous 7192
From Philippe:

The enclosed patch fixes the case where the shared library is linked in the executable
(as opposed to loaded by TSystem::Load) and the executable does not have a TApplication object.

Revision 7192 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 1 07:09:11 2003 UTC (11 years, 4 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 23624 byte(s)
Diff to previous 6421
Fix a problem in TDatamember::GetterMethod. The case with "Get" was not correctly processed.

Revision 6421 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 11 11:48:11 2003 UTC (11 years, 9 months ago) by rdm
Original Path: trunk/meta/src/TDataMember.cxx
File length: 23703 byte(s)
Diff to previous 6301
Big (unsigned) long long support patch. Following provided:
- basic typedefs in Rtypes.h: Long64_t and ULong64_t
- basic Long64 I/O support in TBuffer
- automatic Long64 I/O support in TStreamerInfo
- Long64 byteswap in Bytes.h
- Long64 type handling in classes like TDataMember, TDataType, TCint,
  TROOT, etc
- Removal of obsolete Long64_t typedefs in many PROOF classes
No changes for non-Long64 data types (no backward incompatibilies).
I/O tested for Long64 basic type, and static and dynamic arrays using
handcoded streamers, rootcint generated streamers and automatic StreamerInfo
streamers.

Revision 6301 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 14 08:45:44 2003 UTC (11 years, 10 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 23654 byte(s)
Diff to previous 5668
Fix (thanks Jiri masik) for a mismatch between new/delete in
the TDataMember destructor.

Revision 5668 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 26 17:26:30 2002 UTC (12 years, 2 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 23648 byte(s)
Diff to previous 5664
addition of new data members in TDataMember class by Victor:
   TString   fTypeName;     //data member type, e,g.: "class TDirectory*" -> "TDirectory".
   TString   fFullTypeName; //full type description of data member, e,g.: "class TDirectory*".
   TString   fTrueTypeName; //full type description with no typedef

These members are copied from the CINT dictionary and are safer.
The getter functions return safe pointers to the string while CINT
is reusing the space of the string in the next call to the getter function.
CV: ----------------------------------------------------------------------

Revision 5664 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 26 10:24:09 2002 UTC (12 years, 2 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 23574 byte(s)
Diff to previous 5642
TDictionary derives now from TNamed instead of TObject.
This change simplifies all the meta classes avoiding duplication
of functions GetName, GetTitle, Compare, Hash.
This also removes some coupling with CINT.

Revision 5642 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 22 18:57:07 2002 UTC (12 years, 2 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 24485 byte(s)
Diff to previous 4584
From Victor:
In TDataMember.h new method which returns true type name,
not a typedef one.
==========================================================

   const char    *GetTrueTypeName() const;

Its implementation in TDataMember.cxx
//______________________________________________________________________________
const char *TDataMember::GetTrueTypeName() const
{
   // Get true, non typedef,  type description of data member, e,g.: "int*" not "Int_t*".

   return fInfo->Type()->TrueName();
}

In file TStreamerInfo.cxx
=========================
old code :
         if (dm->IsSTLContainer()) {
            TStreamerSTL *stl = new TStreamerSTL(dm->GetName(),dm->GetTitle(),offset,dm->GetFullTypeName(),dm->IsaPointer());
replaced by:
         if (dm->IsSTLContainer()) {
            TStreamerSTL *stl = new TStreamerSTL(dm->GetName(),dm->GetTitle(),offset,dm->GetTrueTypeName(),dm->IsaPointer());

Revision 4584 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 23 08:11:35 2002 UTC (12 years, 8 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 24237 byte(s)
Diff to previous 4315
In TDataMember::GetOffset, use the same logic as in TStreamerInfo::GetDataMemberOffset.
The previous logic was not correct in case the class list of Realdata had been computed
with a different class having a member with the same name as a member of the base class
or a member class.

Revision 4315 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 5 11:39:21 2002 UTC (12 years, 9 months ago) by rdm
Original Path: trunk/meta/src/TDataMember.cxx
File length: 23627 byte(s)
Diff to previous 4059
fix in TDataMember::SetterMethod() to take into account that Bool_t is now
actually a bool (this fixes the TPad SetEditable, and other, Bool_t argument
methods in the context menus).

Revision 4059 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 22 10:44:01 2002 UTC (12 years, 11 months ago) by rdm
Original Path: trunk/meta/src/TDataMember.cxx
File length: 23477 byte(s)
Diff to previous 4051
fix memory leak in GetterMethod() introduced yesterday.

Revision 4051 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 21 15:40:08 2002 UTC (12 years, 11 months ago) by rdm
Original Path: trunk/meta/src/TDataMember.cxx
File length: 23524 byte(s)
Diff to previous 4009
added TClass argument to TDataMember::SetterMethod() and GetterMethod().
This class argument is the class of the object that will be used to call
the TMethodCall. This fixes a problem that all toggle menu items in an
automatic context menu failed if the method was in a multiple-inherited
base class.

Revision 4009 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 18 07:44:14 2002 UTC (12 years, 11 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 22869 byte(s)
Diff to previous 3871
Add new function GetOffsetCint with the same behaviour as the function GetOffset
in version 3.02. GetCintOffset uses the information from CINT only to compute
the member offset.

Revision 3871 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 5 08:31:09 2002 UTC (12 years, 11 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 22648 byte(s)
Diff to previous 3131
Improve TDataMember::GetOffset to compute the offset for the normal case of a compiled class.
The previous version was operational only for interpreted classes.
The new function automatically calls TClass::BuildRealData and gets the
TRealData offset computed via ShowMembers.

Revision 3131 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 29 16:23:54 2001 UTC (13 years, 2 months ago) by rdm
Original Path: trunk/meta/src/TDataMember.cxx
File length: 22192 byte(s)
Diff to previous 2088
in addition handle toggle context menu items for a getters starting with
HasXXX() in addition to IsXXX() and GetXXX().

Revision 2088 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 27 19:06:27 2001 UTC (13 years, 9 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 22028 byte(s)
Diff to previous 1205
Several changes by Philippe in the code dealing with STL and templated classes.

Revision 1205 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 13 15:13:57 2000 UTC (14 years, 1 month ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 21333 byte(s)
Diff to previous 973
      W A R N I N G   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     ==================================================================
A very long list of changes in this pre-release of version 3.00.
We have modified the signature of many functions (in particular TObject)
to introduce more constness in the system.
You must change your code if your class derives from TObject and uses
one of the modified functions such as ls, Print, Compare, Hash, etc.
The modified functions in TObject have the following signature:
   virtual TObject    *Clone() const;
   virtual Int_t       Compare(const TObject *obj) const;
   virtual void        Delete(Option_t *option=""); // *MENU*
   virtual void        DrawClass() const; // *MENU*
   virtual void        DrawClone(Option_t *option="") const; // *MENU*
   virtual void        Dump() const; // *MENU*
   virtual TObject    *FindObject(const TObject *obj) const;
   virtual char       *GetObjectInfo(Int_t px, Int_t py) const;
   virtual ULong_t     Hash() const;
   virtual void        Inspect() const; // *MENU*
   virtual Bool_t      IsEqual(const TObject *obj) const;
   virtual void        ls(Option_t *option="") const;
   virtual void        Print(Option_t *option="") const;

A similar operation has been done with classes such as TH1, TVirtualPad,
TTree, etc.

Revision 973 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 21 20:45:07 2000 UTC (14 years, 2 months ago) by brun
Original Path: trunk/meta/src/TDataMember.cxx
File length: 21308 byte(s)
Diff to previous 590
Change fIsEditable to fEditable.

Revision 590 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 6 14:18:58 2000 UTC (14 years, 4 months ago) by rdm
Original Path: trunk/meta/src/TDataMember.cxx
File length: 21316 byte(s)
Diff to previous 3
fix in finding getter function for context menu.

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/meta/src/TDataMember.cxx
File length: 21084 byte(s)
Copied from: branches/rdm/meta/src/TDataMember.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/meta/src/TDataMember.cxx
File length: 21084 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