Changeset 19288


Ignore:
Timestamp:
Oct 24, 2018, 7:45:33 PM (8 months ago)
Author:
tbretz
Message:
This fixes some compiler warning about alignment during casts.
Location:
trunk/Mars/mfileio
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Mars/mfileio/MFitsArray.cc

    r19255 r19288  
    7373// status is set to kFALSE if some data cannot be stored in a FITS table,     
    7474// for example more than 1 dimensional arrays.                                 
    75 MClonesArrayHelper::MClonesArrayHelper(TClonesArray * clonesArray, MLog * log,
     75MClonesArrayHelper::MClonesArrayHelper(const TClonesArray * clonesArray, MLog * log,
    7676                                       Bool_t & status)
    7777  :  fClonesArray(clonesArray)
  • trunk/Mars/mfileio/MFitsArray.h

    r18140 r19288  
    5050{
    5151   // data of this TClonesArray are written to fFitsTable               
    52    TClonesArray *  fClonesArray; 
     52   const TClonesArray *  fClonesArray;
    5353
    5454
     
    6666
    6767public:
    68    MClonesArrayHelper(TClonesArray * clonesArray, MLog * log, Bool_t & status);
     68   MClonesArrayHelper(const TClonesArray * clonesArray, MLog * log, Bool_t & status);
    6969   MClonesArrayHelper(const MClonesArrayHelper & clHelper);
    7070
  • trunk/Mars/mfileio/MWriteFitsFile.cc

    r19255 r19288  
    811811      string comment(dataMember->GetTitle());
    812812      string::size_type pos1, pos2;
    813       if ((pos1 = comment.find(178)) != string::npos)
     813      if ((pos1 = comment.find('\xb2')) != string::npos)
    814814         comment.replace(pos1, 1, "**2");
    815815
     
    902902         {
    903903         // special treatment for classes
    904           uint32_t arraySize = 0;
    905           TString typeName;
     904          const char *ptr = reinterpret_cast<char*>(baseAdr) + dataMember->GetOffset();
    906905
    907906          if (strncmp(dataMember->GetTrueTypeName(), "MArray", 6) == 0)
     
    909908              if (strcmp(dataMember->GetTrueTypeName(), "MArrayS*") == 0)
    910909              {
    911                   typeName = "UShort_t";
    912                   arraySize = (*((MArrayS**)((char*)baseAdr + dataMember->GetOffset())))->GetSize();
     910                  const MArrayS *arr = *reinterpret_cast<MArrayS* const*>(ptr);
    913911                  InitSingleColumn(tableName,
    914                                    arraySize,
    915                                    typeName.Data(),
    916                                    (char*)(*((MArrayS**)((char*)baseAdr + dataMember->GetOffset())))->GetArray(),
     912                                   arr->GetSize(),
     913                                   "UShort_t",
     914                                   (char*)arr->GetArray(),
    917915                                   colName.Data(),
    918916                                   unit,
     
    921919              else if (strcmp(dataMember->GetTrueTypeName(), "MArrayB*") == 0)
    922920              {
    923                       typeName = "UChar_t";
    924                       arraySize = (*((MArrayB**)((char*)baseAdr + dataMember->GetOffset())))->GetSize();
     921                      const MArrayB *arr = *reinterpret_cast<MArrayB* const*>(ptr);
    925922                      InitSingleColumn(tableName,
    926                                      arraySize,
    927                                      typeName.Data(),
    928                                      (char*)(*((MArrayB**)((char*)baseAdr + dataMember->GetOffset())))->GetArray(),
     923                                     arr->GetSize(),
     924                                     "UChar_t",
     925                                     (char*)arr->GetArray(),
    929926                                     colName.Data(),
    930927                                     unit,
     
    933930              else if (strcmp(dataMember->GetTrueTypeName(), "MArrayF*") == 0)
    934931              {
    935                       typeName = "TFloat_t";
    936                       arraySize = (*((MArrayF**)((char*)baseAdr + dataMember->GetOffset())))->GetSize();
     932                      const MArrayF *arr = *reinterpret_cast<MArrayF* const*>(ptr);
    937933                      InitSingleColumn(tableName,
    938                                      arraySize,
    939                                      typeName.Data(),
    940                                      (char*)(*((MArrayF**)((char*)baseAdr + dataMember->GetOffset())))->GetArray(),
     934                                     arr->GetSize(),
     935                                     "TFloat_t",
     936                                     (char*)arr->GetArray(),
    941937                                     colName.Data(),
    942938                                     unit,
     
    959955            MClonesArrayHelper * clHelper;
    960956
    961             TClonesArray * cloneArray = (TClonesArray*)((char*)baseAdr + dataMember->GetOffset());
     957            const TClonesArray * cloneArray = reinterpret_cast<const TClonesArray*>(ptr);
    962958            Bool_t status;
    963959            clHelper = new MClonesArrayHelper(cloneArray, fLog, status);
Note: See TracChangeset for help on using the changeset viewer.