Changeset 18709


Ignore:
Timestamp:
10/30/14 09:35:45 (10 years ago)
Author:
bdef
Message:

BUG:fixing segmentation faults

File:
1 edited

Legend:

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

    r18707 r18709  
    1717        int         penalty_lock;
    1818        int         hydro_maxiter;
    19         int         *elementactive_counter =NULL;
     19        int*        elementactive_counter =NULL;
    2020        bool        isefficientlayer;
    2121        IssmDouble  sedimentlimit;
     
    6060                elementactive_counter=xNewZeroInit<int>(iomodel->numberofelements);
    6161                parameters->AddObject(new IntVecParam(ElementActiveCounterEnum,elementactive_counter,iomodel->numberofelements));
     62                xDelete<int>(elementactive_counter);
    6263        }
    6364       
     
    685686        bool     old_active;
    686687        int      penalty_lock;
    687         int*     elementactive_counter = NULL;
     688        int*     elementactive_counter=NULL;
    688689        Element* element=NULL;
    689690
     691        femmodel->parameters->FindParam(&elementactive_counter,NULL,ElementActiveCounterEnum);
    690692        for(int i=0;i<femmodel->elements->Size();i++){
    691693                element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
    692                 element->parameters->FindParam(&elementactive_counter,NULL,ElementActiveCounterEnum);
    693694                element->parameters->FindParam(&penalty_lock,HydrologydcPenaltyLockEnum);
    694695               
     
    697698                old_active_input->GetInputValue(&old_active);
    698699               
    699                 if(node_mask_input->Max()>0.) {
     700                if(node_mask_input->Max()>0.){
    700701                        element_active = true;
    701702                }
     
    709710                        element_active = true;
    710711                }
    711                 femmodel->parameters->SetParam(elementactive_counter,femmodel->elements->Size(),ElementActiveCounterEnum);
    712712                element->AddInput(new BoolInput(HydrologydcMaskEplactiveEltEnum,element_active));
    713713        }
     714        femmodel->parameters->SetParam(elementactive_counter,femmodel->elements->Size(),ElementActiveCounterEnum);
     715        xDelete<int>(elementactive_counter);
    714716}/*}}}*/
    715717
    716718void HydrologyDCInefficientAnalysis::ResetCounter(FemModel* femmodel){/*{{{*/
    717719
    718         int*     elementactive_counter = NULL;
     720        int*     elementactive_counter=NULL;
    719721        Element* element=NULL;
    720        
     722
     723        femmodel->parameters->FindParam(&elementactive_counter,NULL,ElementActiveCounterEnum);
    721724        for(int i=0;i<femmodel->elements->Size();i++){
    722725                element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
    723                 element->parameters->FindParam(&elementactive_counter,NULL,ElementActiveCounterEnum);
    724 
    725                 elementactive_counter=0;
    726         }
    727 }/*}}}*/
     726               
     727                elementactive_counter[i]=0;
     728        }               
     729        femmodel->parameters->SetParam(elementactive_counter,femmodel->elements->Size(),ElementActiveCounterEnum);
     730        xDelete<int>(elementactive_counter);
     731}/*}}}*/
Note: See TracChangeset for help on using the changeset viewer.