Changeset 23293


Ignore:
Timestamp:
09/16/18 19:51:25 (7 years ago)
Author:
Mathieu Morlighem
Message:

BUG: fixing memory leaks

Location:
issm/trunk-jpl/src/c
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/cores/controladm1qn3_core.cpp

    r23281 r23293  
    322322        int num_dependents_old   = num_dependents;
    323323        int num_independents_old = num_independents;
     324
     325        #if defined(_HAVE_ADOLC_)
     326        /*Get gradient for ADOLC {{{*/
    324327        if(my_rank!=0){
    325328                num_dependents   = 0;
    326329                num_independents = 0;
    327330        }
    328 
    329         #if defined(_HAVE_ADOLC_)
    330         /*Get gradient for ADOLC {{{*/
    331331
    332332        /*get the EDF pointer:*/
     
    382382                /*initialize direction index in the weights vector: */
    383383                aWeightVector=xNewZeroInit<IssmPDouble>(num_dependents);
    384                 if(my_rank==0)  tape_codi.setGradient(codi_global.output_indices[aDepIndex],1.0);
     384                if(my_rank==0){
     385                        if(aDepIndex<0 || aDepIndex>=num_dependents || codi_global.output_indices.size() <= aDepIndex){
     386                                _error_("index value for AutodiffFosReverseIndexEnum should be in [0,num_dependents-1]");
     387                        }
     388                        tape_codi.setGradient(codi_global.output_indices[aDepIndex],1.0);
     389                }
    385390                tape_codi.evaluate();
    386391
     
    461466        xDelete<double>(XU);
    462467        xDelete<double>(XL);
     468        xDelete<int>(control_enum);
     469        xDelete<int>(N);
    463470        xDelete<IssmDouble>(scaling_factors);
    464471        xDelete<IssmPDouble>(totalgradient);
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp

    r23255 r23293  
    229229        xDelete<IssmDouble>(independents_fullmax);
    230230        xDelete<int>(start_point);
     231        xDelete<int>(control_sizes);
    231232        /*Step2: create cost functions (dependents)*/
    232233
  • issm/trunk-jpl/src/c/modules/SetControlInputsFromVectorx/SetControlInputsFromVectorx.cpp

    r23066 r23293  
    3333
    3434                xDelete<int>(control_type);
     35                xDelete<int>(M);
     36                xDelete<int>(N);
    3537        }
    3638        else{
Note: See TracChangeset for help on using the changeset viewer.