Changeset 16863


Ignore:
Timestamp:
11/21/13 15:14:12 (11 years ago)
Author:
Mathieu Morlighem
Message:

BUG: fixing some memory leaks

Location:
issm/trunk-jpl/src/c/analyses
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.cpp

    r16862 r16863  
    122122
    123123        /*Clean up and return*/
     124        xDelete<int>(responses);
    124125        xDelete<IssmDouble>(xyz_list);
    125126        xDelete<IssmDouble>(basis);
  • issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp

    r16847 r16863  
    238238        /*Clean up and return*/
    239239        xDelete<int>(cs_list);
     240        xDelete<int>(responses);
    240241        xDelete<IssmDouble>(xyz_list_top);
    241242        xDelete<IssmDouble>(vbasis);
     
    421422
    422423        /*Clean up and return*/
     424        xDelete<int>(responses);
    423425        xDelete<IssmDouble>(xyz_list_top);
    424426        xDelete<IssmDouble>(basis);
     
    618620
    619621        /*Clean up and return*/
     622        xDelete<int>(responses);
    620623        xDelete<IssmDouble>(xyz_list);
    621624        xDelete<IssmDouble>(basis);
  • issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp

    r16843 r16863  
    119119        Element* basalelement = element->SpawnBasalElement();
    120120
     121        ElementMatrix* Ke = NULL;
     122        switch(element->FiniteElement()){
     123                case P1Enum: case P2Enum:
     124                        Ke = CreateKMatrixCG(basalelement);
     125                        break;
     126                case P1DGEnum:
     127                        Ke = CreateKMatrixDG(basalelement);
     128                        break;
     129                default:
     130                        _error_("Element type " << EnumToStringx(element->FiniteElement()) << " not supported yet");
     131        }
     132
    121133        int meshtype;
    122134        element->FindParam(&meshtype,MeshTypeEnum);
    123 
    124         switch(element->FiniteElement()){
    125                 case P1Enum: case P2Enum:
    126                         return CreateKMatrixCG(basalelement);
    127                 case P1DGEnum:
    128                         return CreateKMatrixDG(basalelement);
    129                 default:
    130                         _error_("Element type " << EnumToStringx(element->FiniteElement()) << " not supported yet");
    131         }
     135        if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
     136        return Ke;
    132137}/*}}}*/
    133138ElementMatrix* BalancethicknessAnalysis::CreateKMatrixCG(Element* element){/*{{{*/
     
    306311        Element* basalelement = element->SpawnBasalElement();
    307312
     313        ElementVector* pe = NULL;
    308314        switch(element->FiniteElement()){
    309315                case P1Enum: case P2Enum:
    310                         return CreatePVectorCG(basalelement);
     316                        pe = CreatePVectorCG(basalelement);
     317                        break;
    311318                case P1DGEnum:
    312                         return CreatePVectorDG(basalelement);
     319                        pe = CreatePVectorDG(basalelement);
     320                        break;
    313321                default:
    314322                        _error_("Element type " << EnumToStringx(element->FiniteElement()) << " not supported yet");
    315323        }
    316324
     325        int meshtype;
     326        element->FindParam(&meshtype,MeshTypeEnum);
     327        if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
     328        return pe;
    317329}/*}}}*/
    318330ElementVector* BalancethicknessAnalysis::CreatePVectorCG(Element* element){/*{{{*/
  • issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp

    r16832 r16863  
    217217        Element* basalelement = element->SpawnBasalElement();
    218218
     219        ElementMatrix* Ke = NULL;
     220        switch(element->FiniteElement()){
     221                case P1Enum: case P2Enum:
     222                        Ke = CreateKMatrixCG(basalelement);
     223                        break;
     224                case P1DGEnum:
     225                        Ke = CreateKMatrixDG(basalelement);
     226                        break;
     227                default:
     228                        _error_("Element type " << EnumToStringx(element->FiniteElement()) << " not supported yet");
     229        }
     230
    219231        int meshtype;
    220232        element->FindParam(&meshtype,MeshTypeEnum);
    221 
    222         switch(element->FiniteElement()){
    223                 case P1Enum: case P2Enum:
    224                         return CreateKMatrixCG(basalelement);
    225                 case P1DGEnum:
    226                         return CreateKMatrixDG(basalelement);
    227                 default:
    228                         _error_("Element type " << EnumToStringx(element->FiniteElement()) << " not supported yet");
    229         }
     233        if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
     234        return Ke;
    230235}/*}}}*/
    231236ElementMatrix* MasstransportAnalysis::CreateKMatrixCG(Element* element){/*{{{*/
     
    423428        Element* basalelement = element->SpawnBasalElement();
    424429
     430        ElementVector* pe = NULL;
    425431        switch(element->FiniteElement()){
    426432                case P1Enum: case P2Enum:
    427                         return CreatePVectorCG(basalelement);
     433                        pe = CreatePVectorCG(basalelement);
     434                        break;
    428435                case P1DGEnum:
    429                         return CreatePVectorDG(basalelement);
     436                        pe = CreatePVectorDG(basalelement);
     437                        break;
    430438                default:
    431439                        _error_("Element type " << EnumToStringx(element->FiniteElement()) << " not supported yet");
    432440        }
    433441
     442        int meshtype;
     443        element->FindParam(&meshtype,MeshTypeEnum);
     444        if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
     445        return pe;
    434446}/*}}}*/
    435447ElementVector* MasstransportAnalysis::CreatePVectorCG(Element* element){/*{{{*/
Note: See TracChangeset for help on using the changeset viewer.