Ignore:
Timestamp:
12/07/21 12:00:23 (3 years ago)
Author:
ymipsl
Message:
  • Solve memory leak from remapper.
  • shared_ptr add add for manage nodes.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/extern/remap/src/node.hpp

    r923 r2269  
    1010 
    1111#include "triple.hpp" 
     12#include <memory> 
    1213 
    1314namespace sphereRemap { 
     
    112113//#endif 
    113114 
    114 typedef Node* NodePtr; 
    115  
    116 struct Node 
     115//typedef Node* NodePtr; 
     116typedef std::shared_ptr<Node> NodePtr; 
     117 
     118struct Node : public std::enable_shared_from_this<Node> 
    117119{ 
    118120        int level; /* FIXME leafs are 0 and root is max level? */ 
     
    120122        Coord centre; 
    121123        double radius; 
    122         NodePtr parent, ref; 
     124        std::weak_ptr<Node> parent ; 
     125        NodePtr ref; 
    123126        std::vector<NodePtr> child; 
    124127        std::list<NodePtr> intersectors; 
     
    198201        void printLevel(int level); 
    199202        void routeNode(NodePtr node, int level); 
    200         void routingIntersecting(std::vector<Node>* routingList, NodePtr node); 
     203        void routingIntersecting(std::vector<NodePtr>* routingList, NodePtr node); 
    201204        void routeIntersection(std::vector<int>& routes, NodePtr node); 
    202205  void getNodeLevel(int level,std::list<NodePtr>& NodeList) ; 
Note: See TracChangeset for help on using the changeset viewer.