Ignore:
Timestamp:
12/01/21 16:52:24 (3 years ago)
Author:
ymipsl
Message:

tracking memory leak
Elements, views, and connectors are now managed with shared pointer.
YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/grid_algorithm_generic.cpp

    r2122 r2267  
    1818  void CGridAlgorithmGeneric::computeAlgorithm(void) 
    1919  { 
    20     CGridLocalElements* gridSrcElements = gridSrc_->getGridLocalElements() ; 
    21     CGridLocalElements* gridDstElements = gridDst_->getGridLocalElements() ; 
     20    shared_ptr<CGridLocalElements> gridSrcElements = gridSrc_->getGridLocalElements() ; 
     21    shared_ptr<CGridLocalElements> gridDstElements = gridDst_->getGridLocalElements() ; 
    2222     
    23     CGridLocalView* srcView = gridSrcElements->getView(CElementView::WORKFLOW) ; 
    24     CGridLocalView* dstView = gridDstElements->getView(CElementView::WORKFLOW) ; 
     23    shared_ptr<CGridLocalView> srcView = gridSrcElements->getView(CElementView::WORKFLOW) ; 
     24    shared_ptr<CGridLocalView> dstView = gridDstElements->getView(CElementView::WORKFLOW) ; 
    2525    MPI_Comm comm = CContext::getCurrent()->getIntraComm() ; 
    2626    int commSize = CContext::getCurrent()->getIntraCommSize() ; 
     
    2929    auto& elements =  gridSrcElements->getElements() ; 
    3030    int nElements = elements.size() ; 
    31     vector<CLocalElement*> remoteElements(nElements) ; 
    32     vector<CLocalView*> remoteViews(nElements) ; 
     31    vector<shared_ptr<CLocalElement>> remoteElements(nElements) ; 
     32    vector<shared_ptr<CLocalView>> remoteViews(nElements) ; 
    3333    for(int i=0;i<nElements;i++) 
    3434    { 
     
    3838        CArray<size_t,1> globalIndexView ; 
    3939        srcView->getView(i)->getGlobalIndexView(globalIndexView) ; 
    40         remoteElements[i] = new CLocalElement(commRank, srcView->getView(i)->getGlobalSize(),globalIndexView) ; 
     40        remoteElements[i] = make_shared<CLocalElement>(commRank, srcView->getView(i)->getGlobalSize(),globalIndexView) ; 
    4141        remoteElements[i]->addFullView() ; 
    4242        if (i>pos_) dimBefore_ *= srcView->getView(i)->getSize() ; 
     
    4747    } 
    4848 
    49     gridTransformConnector_ = new CGridTransformConnector(srcView->getViews(), remoteViews, comm ) ; 
     49    gridTransformConnector_ = make_shared<CGridTransformConnector>(srcView->getViews(), remoteViews, comm ) ; 
    5050  
    5151  } 
Note: See TracChangeset for help on using the changeset viewer.