From: eap Date: Mon, 28 Nov 2016 14:06:48 +0000 (+0300) Subject: 23336: [CEA 1940] Crash when editing a skin mesh generated by MG-Cleaner X-Git-Tag: V8_2_0rc1~3 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=24b702afdad440571e590fa583f925c263bdb2cb;p=modules%2Fsmesh.git 23336: [CEA 1940] Crash when editing a skin mesh generated by MG-Cleaner --- diff --git a/src/SMESH_I/SMESH_Gen_i_1.cxx b/src/SMESH_I/SMESH_Gen_i_1.cxx index 346150a0b..74e054d8f 100644 --- a/src/SMESH_I/SMESH_Gen_i_1.cxx +++ b/src/SMESH_I/SMESH_Gen_i_1.cxx @@ -325,13 +325,16 @@ static SALOMEDS::SObject_ptr publish(SALOMEDS::Study_ptr theStudy, selAttr->SetSelectable( false ); } + if ( !isNewSO ) + aStudyBuilder->RemoveReference( SO );// remove garbage reference (23336) + // add object to the use case tree // (to support tree representation customization and drag-n-drop) - if ( isNewSO ) + if ( isNewSO || !useCaseBuilder->IsUseCaseNode( SO )) { - if ( !CORBA::is_nil( objAfter ) ) + if ( !CORBA::is_nil( objAfter )) useCaseBuilder->InsertBefore( SO, objAfter ); // insert at given tag - else if ( !useCaseBuilder->IsUseCaseNode( SO ) ) + else if ( !useCaseBuilder->IsUseCaseNode( SO )) useCaseBuilder->AppendTo( theFatherObject, SO ); // append to the end of list } return SO._retn();