From 24b702afdad440571e590fa583f925c263bdb2cb Mon Sep 17 00:00:00 2001 From: eap Date: Mon, 28 Nov 2016 17:06:48 +0300 Subject: [PATCH] 23336: [CEA 1940] Crash when editing a skin mesh generated by MG-Cleaner --- src/SMESH_I/SMESH_Gen_i_1.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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(); -- 2.39.2