mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-28 18:30:35 +05:00
0022172: [CEA 790] create the groups corresponding to domains
1) Reset _algo = 0 if ( event == REMOVE_ALGO || event == REMOVE_FATHER_ALGO ) 2) Avoid erasing _computeError holding a WARNING is algo->Compute() returns true - if ( !_computeError || ( !ret && _computeError->IsOK() ) ) + if ( !_computeError || (/* !ret && */_computeError->IsOK() ) ) _computeError = algo->GetComputeError(); 3) Fix notifyListenersOnEvent(): - if ( !isDeletable || !_eventListeners.count( li_da.first )) + if ( !isDeletable || _eventListeners.count( li_da.first )) li_da.first->myBusySM.erase( this ); // a listener is hopefully not dead
This commit is contained in:
parent
610978f5f6
commit
10a6101340
@ -1049,6 +1049,9 @@ SMESH_Hypothesis::Hypothesis_Status
|
|||||||
if ( stateChange && _algoState == HYP_OK ) // hyp becomes OK
|
if ( stateChange && _algoState == HYP_OK ) // hyp becomes OK
|
||||||
algo->SetEventListener( this );
|
algo->SetEventListener( this );
|
||||||
|
|
||||||
|
if ( event == REMOVE_ALGO || event == REMOVE_FATHER_ALGO )
|
||||||
|
_algo = 0;
|
||||||
|
|
||||||
notifyListenersOnEvent( event, ALGO_EVENT, anHyp );
|
notifyListenersOnEvent( event, ALGO_EVENT, anHyp );
|
||||||
|
|
||||||
if ( stateChange && oldAlgoState == HYP_OK ) { // hyp becomes KO
|
if ( stateChange && oldAlgoState == HYP_OK ) { // hyp becomes KO
|
||||||
@ -1512,7 +1515,7 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
|
|||||||
{
|
{
|
||||||
ret = algo->Compute((*_father), shape);
|
ret = algo->Compute((*_father), shape);
|
||||||
}
|
}
|
||||||
if ( !_computeError || ( !ret && _computeError->IsOK() ) ) // algo can set _computeError of submesh
|
if ( !_computeError || (/* !ret && */_computeError->IsOK() ) ) // algo can set _computeError of submesh
|
||||||
_computeError = algo->GetComputeError();
|
_computeError = algo->GetComputeError();
|
||||||
}
|
}
|
||||||
catch ( ::SMESH_ComputeError& comperr ) {
|
catch ( ::SMESH_ComputeError& comperr ) {
|
||||||
@ -2272,7 +2275,7 @@ void SMESH_subMesh::notifyListenersOnEvent( const int event,
|
|||||||
|
|
||||||
li_da.first->ProcessEvent( event, eventType, this, li_da.second, hyp );
|
li_da.first->ProcessEvent( event, eventType, this, li_da.second, hyp );
|
||||||
|
|
||||||
if ( !isDeletable || !_eventListeners.count( li_da.first ))
|
if ( !isDeletable || _eventListeners.count( li_da.first ))
|
||||||
li_da.first->myBusySM.erase( this ); // a listener is hopefully not dead
|
li_da.first->myBusySM.erase( this ); // a listener is hopefully not dead
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user