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/distribution/grid_elements.hpp

    r1960 r2267  
    1111  class CGridLocalConnector ; 
    1212 
    13   class CGridLocalElements   
     13  class CGridLocalElements : public std::enable_shared_from_this<CGridLocalElements> 
    1414  { 
    1515    private: 
    16       std::vector<CLocalElement*> elements_ ; 
    17       std::vector<CGridLocalView*> views_= std::vector<CGridLocalView*>(CElementView::numViewType_) ; 
    18       std::map<pair<CElementView::type,CElementView::type>, CGridLocalConnector*> connectors_ ; 
     16      std::vector<shared_ptr<CLocalElement>> elements_ ; 
     17      std::vector<shared_ptr<CGridLocalView>> views_= std::vector<shared_ptr<CGridLocalView>>(CElementView::numViewType_) ; 
     18      std::map<pair<CElementView::type,CElementView::type>, shared_ptr<CGridLocalConnector>> connectors_ ; 
    1919      vector<bool> localMask_ ; 
    2020   
    2121    public: 
    22       CGridLocalElements(vector<CLocalElement*> elements) : elements_(elements) {} 
    23       CGridLocalElements(vector<CLocalElement*> elements, vector<bool>& localMask) : elements_(elements), localMask_(localMask) {} 
     22      CGridLocalElements(vector<shared_ptr<CLocalElement> > elements) : elements_(elements) {} 
     23      CGridLocalElements(vector<shared_ptr<CLocalElement>> elements, vector<bool>& localMask) : elements_(elements), localMask_(localMask) {} 
    2424 
    2525      bool hasLocalMask() { return !localMask_.empty() ;} 
    2626      vector<bool>& getLocalMask(void) { return localMask_ ;} 
    2727 
    28       std::vector<CLocalElement*>& getElements(void) { return elements_ ; } 
    29       CGridLocalView* getView(CElementView::type type) ; 
    30       CGridLocalConnector* getConnector(CElementView::type srcType, CElementView::type dstType, bool withMask=false) ; 
     28      std::vector<shared_ptr<CLocalElement>>& getElements(void) { return elements_ ; } 
     29      shared_ptr<CGridLocalView> getView(CElementView::type type) ; 
     30      shared_ptr<CGridLocalConnector> getConnector(CElementView::type srcType, CElementView::type dstType, bool withMask=false) ; 
    3131  } ; 
    3232} 
Note: See TracChangeset for help on using the changeset viewer.