Ignore:
Timestamp:
12/09/21 12:28:20 (3 years ago)
Author:
ymipsl
Message:

Tracking memory leak : release memory statically alocated

YM

Location:
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/grid_transformation_factory_impl.hpp

    r2270 r2274  
    6060  static bool unregisterTransformation(ETranformationType transType); 
    6161  static bool initializeTransformation_; 
     62  static void unregisterAllTransformations(void) ; 
    6263}; 
    6364 
     
    9899bool CGridTransformationFactory<T>::registerTransformation(ETranformationType transType, CreateTransformationCallBack createFn) 
    99100{ 
    100   if (0 == transformationCreationCallBacks_) 
     101  if (nullptr == transformationCreationCallBacks_) 
    101102    transformationCreationCallBacks_ = new CallBackMap(); 
    102103 
     
    110111} 
    111112 
     113template<typename T> 
     114void CGridTransformationFactory<T>::unregisterAllTransformations(void) 
     115{ 
     116  if (nullptr != transformationCreationCallBacks_)  
     117  { 
     118    transformationCreationCallBacks_->clear() ; 
     119    delete transformationCreationCallBacks_; 
     120  } 
     121} 
    112122 
    113123} 
     124 
    114125#endif // __XIOS_GRID_TRANSFORMATION_FACTORY_HPP__ 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/transformation.hpp

    r2270 r2274  
    5353    public: 
    5454      virtual ~CTransformation(void) {} 
    55  
     55      static void unregisterAllTransformations(); 
    5656    protected: 
    5757      typedef CTransformation<T>* (*createTransformationCallBack)(const StdString&, xml::CXMLNode*); 
     
    6262      static bool registerTransformation(ETranformationType transType, tuple<createTransformationCallBack,getIdTransformationCallBack> callBackFunctions); 
    6363      static bool unregisterTransformation(ETranformationType transType); 
     64      
     65 
    6466 
    6567    protected: 
     
    113115  } 
    114116 
     117  template<typename T> 
     118  void CTransformation<T>::unregisterAllTransformations(void) 
     119  { 
     120    if (0 != callBacks_) 
     121    { 
     122      callBacks_->clear(); 
     123      delete callBacks_ ;   
     124    } 
     125  } 
     126 
    115127} // namespace xios 
    116128 
Note: See TracChangeset for help on using the changeset viewer.