Skip to content
Snippets Groups Projects
  1. Jun 25, 2003
  2. Jun 06, 2003
  3. May 27, 2003
  4. Apr 02, 2003
  5. Mar 05, 2003
    • Rene Brun's avatar
      From Philippe: · 568e67ec
      Rene Brun authored
      This simple patch improve the situation as far as private inheritance is concerned.  In particular this allow usages like :
      class X : Y, public TObject {};
      This also corrects the temporary objects deletion in TClass::BuildRealData which was incorrect for classe inheriting from
      TObject only as 2nd or later inheritances.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@6256 27541ba8-7e3a-0410-8455-c3a389f83636
      568e67ec
  6. Feb 27, 2003
  7. Feb 07, 2003
  8. Feb 05, 2003
  9. Jan 31, 2003
  10. Jan 22, 2003
  11. Jan 16, 2003
    • Rene Brun's avatar
      From Philippe: · 7b3b0795
      Rene Brun authored
      I finally got some time to look at why CINT dictionary kept using __malloc_alloc_template with gcc 2.9x.  The reasons I was
      looking
      into it is that I have been having to filter out the word
      '__malloc_alloc_template' when creating the Shadow (this was leading
      to compiler error).  And today, I discovered that, more subtely, it
      was making most multiple inheritances from a std container wrong.
      
      The content of G__cpp_setup_inheritancedict was something like:
      
           DerivedTemplate<int> *G__Lderived;
           list<int,__malloc_alloc_template> *G__Lpbase=(list<int,__malloc_alloc_template>*)G__Lderived;
              ... (long)G__Lpbase-(long)G__Lderived ...
      
      with DerivedTemplate inheriting from list.  And the result of the substraction was 0!
      
      So I investigated further and discovered that gcc 2.9x uses __malloc_alloc_template
      if and ONLY if the symbol __USE_MALLOC was set.  In the other case it uses
      __default_alloc_template.
      
      This means that in my example DerivedTemplate inherited from
      list<int,__default_alloc_template> and NOT from list<int,__malloc_alloc_template>.
      Hence the error.
      
      The simple solution was to use neither of the 2 alloc_template but to use/rely on the typedef that gcc uses.  So for
      makecint/rootcint ONLY, I modified CINT's memory header (see attachement).
      
      This actually should fix ALL the problems we encountered related to __malloc_alloc_template.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@5920 27541ba8-7e3a-0410-8455-c3a389f83636
      7b3b0795
  12. Jan 11, 2003
  13. Jan 09, 2003
  14. Dec 17, 2002
  15. Dec 14, 2002
    • Rene Brun's avatar
      From Philippe: · 03f7ba5f
      Rene Brun authored
      The following patch makes sure that the Shadow Class always use fully qualified name when refering to their data members.  This is avoid a confusion when the template
      parameter and the template instantiation are in the same dictionary.  (This is usefull for CMS).
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@5810 27541ba8-7e3a-0410-8455-c3a389f83636
      03f7ba5f
  16. Dec 13, 2002
  17. Dec 10, 2002
  18. Dec 09, 2002
  19. Dec 08, 2002
  20. Dec 05, 2002
  21. Dec 04, 2002
  22. Nov 27, 2002
    • Rene Brun's avatar
      From Philippe: · d07d58b5
      Rene Brun authored
      This patch:
              a) add ClassDef to the generate TSelector with version 0.
              b) keep the Error message for all cases but those inheriting from TSelector
                      (Warnings are not seems in the default rootcint mode).
              c) rootcint succeed in all cases (hence allowing user to compile
                      classes that do not strictly implement the TObject interface).
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@5686 27541ba8-7e3a-0410-8455-c3a389f83636
      d07d58b5
  23. Nov 11, 2002
    • Rene Brun's avatar
      The following patch 'upgrades' the new TClass and TGenericClassInfo code to... · 88ef34c6
      Rene Brun authored
      The following patch 'upgrades' the new TClass and TGenericClassInfo code to actually follow the ROOT coding
      conventions.
      
      This patch also enables a rootcint error (prevents the creation of the dictionary) in the case where the class
      derives (directly or indirectly) from TObject and do not have its own ClassDef.
      
      3 helper class in ROOT failed the test: TGFrameElement, TAssoc and TGMenuEntry.
      
      Philippe.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@5564 27541ba8-7e3a-0410-8455-c3a389f83636
      88ef34c6
    • Rene Brun's avatar
      This patch enhances speed by avoid the use of the interpreter to access · ca58fef4
      Rene Brun authored
      constructors and destructor.  It also allows for feeding a way to access
      the constructor and destructor independently of the dictionary.
      
      5 new data members were added to TGenericClassInfo/TClass.
      Those are direct wrapper around
              - default constructor
              - array constructor
              - delete
              - delete []
              - destructor
      
      In TKey::TKey and TBuffer::WriteObjectAny, a new message was added:
      
      Warning in <TKey::TKey>: Since TSocket had no public constructor
              which can be called without argument, TSocket objects can not be read
              with the current library. You would need to add a default constructor
              before attempting to read.
      
      Philippe.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@5560 27541ba8-7e3a-0410-8455-c3a389f83636
      ca58fef4
  24. Nov 01, 2002
    • Rene Brun's avatar
      From Philippe: · bbff52ee
      Rene Brun authored
      This patch adds the ability to save objects of classes using multiple
      inheritance (directly or indirectly) as part of other objects.
      (Previously multiple inheritance was only supported for top level objects).
      
      In TBuffer.h, TBuffer.cxx:
      
         TBuffer::WriteObject( const void *actualObjStart, TClass *actualClass);
      
      has been made protected. It is replaced by
      
          WriteObjectAny(const void *obj, TClass *ptrClass);
      
      which has a slightly different semantic (for multiple inheriting classes).
      The value of 'obj' in expected to be a value that can be legally stored
      in a pointer to an object of the type described by 'ptrClass'.  I.e:
          MyClass *ptr;
          ....
          b.WriteObjectAny(ptr,gROOT->GetClass(typeid(MyClass)));
      
      We introduced:
      
         void    *ReadObjectAny(const TClass* cast);
      
      which returns a value suitable to be stored in a pointer to an object of
      the type described by 'cast'.  I.e, a typical usage is:
         MyClass *ptr = (MyClass*)b.ReadObjectAny(MyClass::Class());
      
      The existing function
      
          TObject *TBuffer::ReadObject(const TClass *clReq)
      
      now ignores its parameter and returns the address where the object read
      actually start.  It should be noted that if the object is of a class
      which derives from TObject but not as a first inheritance, this value is
      NOT a valid TObject*.  We recommend using ReadObjectAny instead.
      
      In TKey.cxx, I reverted the comments to properly describe how to deal with
      top level object which inherits from TObject but not as a first inheritance
      (can not use dynamic_cast).
      
      In TGenericInfo.h, TGenericInfo.cxx, rootcint.cxx and TClass.cxx, we moved
      to always use an IsA wrapper function instead of using the interpreter for
      TObjects.
      
      TClass.cxx has been modified to optimize a few function now called many
      times.
      
      TStreamerInfo.cxx and TStreamerElement.cxx has been modified to use the
      new TBuffer function and to properly read/write multiple inheriting objects.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@5523 27541ba8-7e3a-0410-8455-c3a389f83636
      bbff52ee
  25. Oct 23, 2002
    • Rene Brun's avatar
      From Philippe: · 5fc8aaa4
      Rene Brun authored
      "I think it is inconvenient for the user (and the documenter) that the
      'cint' executable behaves differently in the ROOT environment or in the
      pure CINT environment.  For example, the lastest change broke Fons'
      script to build the cintdlls (since linG__set_globalcompk was off by
      default, the cintdlls where actually empty!).
      
      So I propose to reset the 'link mode' to be on by default for the 'cint'
      executable.  We can then explicitly set it to be off in the 'rootcint'
      executable.
      
      In order to properly implement this, I also needed to fix the handling
      of the argument to '-c' (corretly use the abs value and propagate all
      the change into G__set_globalcomp.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@5465 27541ba8-7e3a-0410-8455-c3a389f83636
      5fc8aaa4
  26. Oct 22, 2002
    • Rene Brun's avatar
      Patch from Philippe: · b745c73e
      Rene Brun authored
      This updates increase the support for const data members (the existing
      std::string special cases needed to be updated).  It also explicitly
      disable I/O for data members which are references.
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@5458 27541ba8-7e3a-0410-8455-c3a389f83636
      b745c73e
    • Rene Brun's avatar
      From Philippe: · e73b2195
      Rene Brun authored
      This patch repairs TBench.cxx on gcc below 3.1.
      We need to use the 'name' of the class rather than its TrueName (which is
      implementation dependent!!).
      
      
      git-svn-id: http://root.cern.ch/svn/root/trunk@5453 27541ba8-7e3a-0410-8455-c3a389f83636
      e73b2195
  27. Oct 21, 2002
  28. Sep 23, 2002
  29. Sep 17, 2002
  30. Sep 16, 2002
Loading