mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-26 17:30:35 +05:00
fix SIGSEGV in Save() on an empty mesh, after the previous optimization
This commit is contained in:
parent
059b9c819d
commit
6428930b1f
@ -3690,6 +3690,8 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
|
|||||||
SMDS_ElemIteratorPtr eIt =
|
SMDS_ElemIteratorPtr eIt =
|
||||||
mySMESHDSMesh->elementsIterator( isNode ? SMDSAbs_Node : SMDSAbs_All );
|
mySMESHDSMesh->elementsIterator( isNode ? SMDSAbs_Node : SMDSAbs_All );
|
||||||
int nbElems = isNode ? mySMESHDSMesh->NbNodes() : mySMESHDSMesh->GetMeshInfo().NbElements();
|
int nbElems = isNode ? mySMESHDSMesh->NbNodes() : mySMESHDSMesh->GetMeshInfo().NbElements();
|
||||||
|
if ( nbElems < 1 )
|
||||||
|
continue;
|
||||||
std::vector<int> smIDs; smIDs.reserve( nbElems );
|
std::vector<int> smIDs; smIDs.reserve( nbElems );
|
||||||
while ( eIt->more() )
|
while ( eIt->more() )
|
||||||
if ( const SMDS_MeshElement* e = eIt->next())
|
if ( const SMDS_MeshElement* e = eIt->next())
|
||||||
@ -4779,11 +4781,12 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
|
|||||||
|
|
||||||
// creation of tree nodes for all data objects in the study
|
// creation of tree nodes for all data objects in the study
|
||||||
// to support tree representation customization and drag-n-drop:
|
// to support tree representation customization and drag-n-drop:
|
||||||
SALOMEDS::UseCaseBuilder_wrap useCaseBuilder = theComponent->GetStudy()->GetUseCaseBuilder();
|
SALOMEDS::Study_var study = theComponent->GetStudy();
|
||||||
|
SALOMEDS::UseCaseBuilder_wrap useCaseBuilder = study->GetUseCaseBuilder();
|
||||||
if ( !useCaseBuilder->IsUseCaseNode( theComponent ) ) {
|
if ( !useCaseBuilder->IsUseCaseNode( theComponent ) ) {
|
||||||
useCaseBuilder->SetRootCurrent();
|
useCaseBuilder->SetRootCurrent();
|
||||||
useCaseBuilder->Append( theComponent ); // component object is added as the top level item
|
useCaseBuilder->Append( theComponent ); // component object is added as the top level item
|
||||||
SALOMEDS::ChildIterator_wrap it = theComponent->GetStudy()->NewChildIterator( theComponent );
|
SALOMEDS::ChildIterator_wrap it = study->NewChildIterator( theComponent );
|
||||||
for (it->InitEx(true); it->More(); it->Next()) {
|
for (it->InitEx(true); it->More(); it->Next()) {
|
||||||
useCaseBuilder->AppendTo( it->Value()->GetFather(), it->Value() );
|
useCaseBuilder->AppendTo( it->Value()->GetFather(), it->Value() );
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user