Changeset 19760 for trunk/Mars/mbase


Ignore:
Timestamp:
10/11/19 19:22:02 (5 years ago)
Author:
tbretz
Message:
They are added to the ListOfCleanups. This is implemented as a THashTable. According to the root documentation, it is required to rehash the table whenever the name of an object in the table changes. This is now guranteed if name change happens via SetName
Location:
trunk/Mars/mbase
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Mars/mbase/MEvtLoop.cc

    r19359 r19760  
    7979#include <TDatime.h>        // TDatime
    8080#include <TSystem.h>        // gSystem
     81#include <THashList.h>
    8182#include <TStopwatch.h>
    8283#include <TGProgressBar.h> 
     
    123124        fParList = 0;
    124125    }
     126}
     127
     128void MEvtLoop::SetName(const char *name)
     129{
     130    MParContainer::SetName(name);
     131
     132    // From the documentation of THashList::THashList
     133    //
     134    // WARNING !!!
     135    // If the name of an object in the HashList is modified, The hashlist
     136    // must be Rehashed
     137    //
     138    auto table = dynamic_cast<THashList*>(gROOT->GetListOfCleanups());
     139    if (table)
     140        table->Rehash(THashList::kInitHashTableCapacity);
    125141}
    126142
  • trunk/Mars/mbase/MEvtLoop.h

    r14449 r19760  
    5151    virtual ~MEvtLoop();
    5252
     53    void       SetName(const char *name);
     54
    5355    void       SetParList(MParList *p);
    5456    MParList  *GetParList() const  { return fParList; }
  • trunk/Mars/mbase/MStatusArray.cc

    r14888 r19760  
    5252#include <TPaveText.h>        // For the TPaveText workaround
    5353
     54#include <THashList.h>
     55
    5456#include "MLog.h"
    5557#include "MLogManip.h"
     
    7880static void *ptr = 0;
    7981#endif
     82
     83void MStatusArray::SetName(const char *name)
     84{
     85    TObjArray::SetName(name);
     86
     87    // From the documentation of THashList::THashList
     88    //
     89    // WARNING !!!
     90    // If the name of an object in the HashList is modified, The hashlist
     91    // must be Rehashed
     92    //
     93    auto table = dynamic_cast<THashList*>(gROOT->GetListOfCleanups());
     94    if (table)
     95        table->Rehash(THashList::kInitHashTableCapacity);
     96}
    8097
    8198// --------------------------------------------------------------------------
  • trunk/Mars/mbase/MStatusArray.h

    r9580 r19760  
    3333    MStatusArray(const MStatusDisplay &d);
    3434    ~MStatusArray();
     35
     36    void SetName(const char *name);
    3537
    3638    TObject *DisplayIn(Option_t *o=0) const;         // *MENU*
Note: See TracChangeset for help on using the changeset viewer.