Ignore:
Timestamp:
07/24/15 16:40:06 (9 years ago)
Author:
rlacroix
Message:

Distributions and transformations: Avoid using heap allocations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/distribution.cpp

    r553 r653  
    1111namespace xios { 
    1212 
    13 CDistribution::CDistribution(int rank, int dims, CArray<size_t,1>* globalIndex) 
    14   : rank_(rank), dims_(dims), globalIndex_(globalIndex) 
     13CDistribution::CDistribution(int rank, int dims, const CArray<size_t,1>& globalIndex) 
     14  : rank_(rank), dims_(dims), globalIndex_(globalIndex.shape()) 
    1515{ 
    16   if (0 != globalIndex) 
    17   { 
    18     globalIndex_ = new CArray<size_t,1>(globalIndex->numElements()); 
    19     *globalIndex_ = *globalIndex; 
    20   } 
     16  if (0 != globalIndex.numElements()) 
     17    globalIndex_ = globalIndex; 
    2118} 
    2219 
    2320CDistribution::~CDistribution() 
    24 { 
    25   if (0 != globalIndex_) delete globalIndex_; 
    26 } 
     21{ /* Nothing to do */ } 
    2722 
    2823const CArray<size_t,1>& CDistribution::getGlobalIndex() const 
    2924{ 
    30   return (*globalIndex_); 
     25  return globalIndex_; 
    3126} 
    3227 
Note: See TracChangeset for help on using the changeset viewer.