Ignore:
Timestamp:
12/07/21 12:07:33 (3 years ago)
Author:
ymipsl
Message:

Tracking memory leak :
Tranformations and algorithms are now managed with shared_ptr.

YM

Location:
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm
Files:
20 edited

Legend:

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

    r2147 r2270  
    1212 
    1313namespace xios { 
    14 CGenericAlgorithmTransformation* CAxisAlgorithmDuplicateScalar::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     14shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmDuplicateScalar::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1515                                                                     CTransformation<CAxis>* transformation, 
    1616                                                                     int elementPositionInGrid, 
     
    3030  int scalarSrcIndex = elementPositionInGridSrc2ScalarPosition[elementPositionInGrid]; 
    3131 
    32   return (new CAxisAlgorithmDuplicateScalar(isSource, axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], duplicateScalar)); 
     32  return make_shared<CAxisAlgorithmDuplicateScalar>(isSource, axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], duplicateScalar); 
    3333} 
    3434CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_duplicate_scalar.hpp

    r2145 r2270  
    3434  virtual StdString getAlgoName() {return "\\nduplicate_scalar";} 
    3535 
    36   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     36  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    3737                                                CTransformation<CAxis>* transformation, 
    3838                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract.cpp

    r2255 r2270  
    1010 
    1111namespace xios { 
    12 CGenericAlgorithmTransformation* CAxisAlgorithmExtract::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     12shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmExtract::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1313                                                           CTransformation<CAxis>* transformation, 
    1414                                                           int elementPositionInGrid, 
     
    2828  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    2929 
    30   return (new CAxisAlgorithmExtract(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], extractAxis)); 
     30  return make_shared<CAxisAlgorithmExtract>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], extractAxis); 
    3131} 
    3232CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract.hpp

    r2145 r2270  
    4848 
    4949public: 
    50   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     50  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    5151                                                CTransformation<CAxis>* transformation, 
    5252                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract_domain.cpp

    r2255 r2270  
    1515#include "reduction.hpp" 
    1616 
    17 namespace xios { 
    18 CGenericAlgorithmTransformation* CAxisAlgorithmExtractDomain::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     17namespace xios 
     18{ 
     19 
     20shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmExtractDomain::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1921                                                                     CTransformation<CAxis>* transformation, 
    2022                                                                     int elementPositionInGrid, 
     
    3436  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    3537 
    36   return (new CAxisAlgorithmExtractDomain(isSource, axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], extractDomain)); 
     38  return make_shared<CAxisAlgorithmExtractDomain>(isSource, axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], extractDomain); 
    3739} 
    3840CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_extract_domain.hpp

    r2145 r2270  
    4949 
    5050public: 
    51   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     51  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    5252                                                CTransformation<CAxis>* transformation, 
    5353                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_interpolate.cpp

    r2196 r2270  
    2020 
    2121namespace xios { 
    22 CGenericAlgorithmTransformation* CAxisAlgorithmInterpolate::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     22shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmInterpolate::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2323                                                                   CTransformation<CAxis>* transformation, 
    2424                                                                   int elementPositionInGrid, 
     
    3838  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    3939 
    40   return (new CAxisAlgorithmInterpolate(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis)); 
     40  return make_shared<CAxisAlgorithmInterpolate>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis); 
    4141} 
    4242CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_interpolate.hpp

    r2145 r2270  
    5252 
    5353public: 
    54   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     54  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    5555                                                CTransformation<CAxis>* transformation, 
    5656                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_interpolate_coordinate.cpp

    r2268 r2270  
    2323namespace xios 
    2424{ 
    25   CGenericAlgorithmTransformation* CAxisAlgorithmInterpolateCoordinate::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     25  shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmInterpolateCoordinate::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2626                                                                     CTransformation<CAxis>* transformation, 
    2727                                                                     int elementPositionInGrid, 
     
    4141    int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    4242 
    43     return (new CAxisAlgorithmInterpolateCoordinate(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis)); 
     43    return make_shared<CAxisAlgorithmInterpolateCoordinate>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis); 
    4444  } 
    4545  CATCH 
     
    138138  CATCH 
    139139 
    140   CTransformFilter* CAxisAlgorithmInterpolateCoordinate::createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) 
     140  CTransformFilter* CAxisAlgorithmInterpolateCoordinate::createTransformFilter(CGarbageCollector& gc, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) 
    141141  { 
    142142    if (hasCoordinateSrc_ && hasCoordinateDest_) return new CTransformFilter(gc, 3, algo, detectMissingValues, defaultValue) ; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_interpolate_coordinate.hpp

    r2145 r2270  
    3737  static bool registerTrans(); 
    3838  virtual StdString getAlgoName() {return "\\ninterpolate_axis";} 
    39   virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) ; 
     39  virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) ; 
    4040   
    4141private: 
     
    5959 
    6060public: 
    61   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     61  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    6262                                                CTransformation<CAxis>* transformation, 
    6363                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_inverse.cpp

    r2257 r2270  
    1818namespace xios { 
    1919 
    20 CGenericAlgorithmTransformation* CAxisAlgorithmInverse::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     20shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmInverse::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    2121                                                               CTransformation<CAxis>* transformation, 
    2222                                                               int elementPositionInGrid, 
     
    3636  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    3737 
    38   return (new CAxisAlgorithmInverse(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], inverseAxis)); 
     38  return make_shared<CAxisAlgorithmInverse>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], inverseAxis); 
    3939} 
    4040CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_inverse.hpp

    r2256 r2270  
    3838 
    3939public: 
    40  static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     40 static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    4141                                                CTransformation<CAxis>* transformation, 
    4242                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_axis.cpp

    r2136 r2270  
    1515 
    1616namespace xios { 
    17 CGenericAlgorithmTransformation* CAxisAlgorithmReduceAxis::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     17shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmReduceAxis::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1818                                                                   CTransformation<CAxis>* transformation, 
    1919                                                                   int elementPositionInGrid, 
     
    3333  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    3434 
    35   return (new CAxisAlgorithmReduceAxis(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], reduceAxis)); 
     35  return make_shared<CAxisAlgorithmReduceAxis>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], reduceAxis); 
    3636} 
    3737CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_axis.hpp

    r2145 r2270  
    3535 
    3636public: 
    37   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     37  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    3838                                                CTransformation<CAxis>* transformation, 
    3939                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_domain.cpp

    r2251 r2270  
    1616 
    1717namespace xios { 
    18 CGenericAlgorithmTransformation* CAxisAlgorithmReduceDomain::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     18shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmReduceDomain::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1919                                                                   CTransformation<CAxis>* transformation, 
    2020                                                                   int elementPositionInGrid, 
     
    3434  int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid]; 
    3535 
    36   return (new CAxisAlgorithmReduceDomain(isSource, axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], reduceDomain)); 
     36  return make_shared<CAxisAlgorithmReduceDomain>(isSource, axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], reduceDomain); 
    3737} 
    3838CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_reduce_domain.hpp

    r2145 r2270  
    4848 
    4949public: 
    50   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     50  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    5151                                                CTransformation<CAxis>* transformation, 
    5252                                                int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_temporal_splitting.cpp

    r2011 r2270  
    1313 
    1414namespace xios { 
    15 CGenericAlgorithmTransformation* CAxisAlgorithmTemporalSplitting::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     15shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmTemporalSplitting::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1616                                                                     CTransformation<CAxis>* transformation, 
    1717                                                                     int elementPositionInGrid, 
     
    3131  int scalarSrcIndex = elementPositionInGridSrc2ScalarPosition[elementPositionInGrid]; 
    3232 
    33   return (new CAxisAlgorithmTemporalSplitting(isSource, axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], temporalSplitting)); 
     33  return make_shared<CAxisAlgorithmTemporalSplitting>(isSource, axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], temporalSplitting); 
    3434} 
    3535CATCH 
     
    4949} 
    5050 
    51 CTransformFilter* CAxisAlgorithmTemporalSplitting::createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) 
     51CTransformFilter* CAxisAlgorithmTemporalSplitting::createTransformFilter(CGarbageCollector& gc, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) 
    5252{ 
    5353  return new CTemporalTransformFilter(gc, 1, algo, nrecords_, detectMissingValues, defaultValue) ; 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_temporal_splitting.hpp

    r2145 r2270  
    3131      virtual StdString getAlgoName() {return "\\ntemporal_splitting";} 
    3232 
    33       virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) ; 
     33      virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, shared_ptr<CGridAlgorithm> algo, bool detectMissingValues, double defaultValue) ; 
    3434 
    35       static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     35      static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    3636                                                     CTransformation<CAxis>* transformation, 
    3737                                                     int elementPositionInGrid, 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_zoom.cpp

    r1998 r2270  
    1010 
    1111namespace xios { 
    12 CGenericAlgorithmTransformation* CAxisAlgorithmZoom::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     12shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmZoom::create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    1313                                                           CTransformation<CAxis>* transformation, 
    1414                                                           int elementPositionInGrid, 
     
    2828  int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid]; 
    2929 
    30   return (new CAxisAlgorithmZoom(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], zoomAxis)); 
     30  return make_shared<CAxisAlgorithmZoom>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], zoomAxis); 
    3131} 
    3232CATCH 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_zoom.hpp

    r2011 r2270  
    4848 
    4949public: 
    50   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
     50  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc, 
    5151                                                CTransformation<CAxis>* transformation, 
    5252                                                int elementPositionInGrid, 
Note: See TracChangeset for help on using the changeset viewer.