From 7abad597ce551f1465e71bcea533b5ac558679f6 Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 14 Nov 2018 16:41:52 +0300 Subject: [PATCH] Crash after pre-viewing mesh translation --- src/SMESHGUI/SMESHGUI_ComputeDlg.cxx | 7 +++---- src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx | 2 +- src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx | 4 ++-- src/SMESHGUI/SMESHGUI_MeshEditPreview.cxx | 8 ++++---- src/SMESHGUI/SMESHGUI_MeshEditPreview.h | 2 +- src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_PreviewDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_ReorientFacesDlg.cxx | 4 ++-- src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx | 2 +- 12 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx b/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx index e5ad4a878..a40bac0d4 100644 --- a/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx @@ -1339,7 +1339,7 @@ void SMESHGUI_BaseComputeOp::onShowBadMesh() prop->SetPointSize( aPointSize * 3 ); prop->SetColor( 250, 0, 250 ); myBadMeshDisplayer->GetActor()->SetProperty( prop ); - myBadMeshDisplayer->SetData( aMeshData._retn() ); + myBadMeshDisplayer->SetData( aMeshData.in() ); prop->Delete(); } } @@ -1979,11 +1979,10 @@ void SMESHGUI_PrecomputeOp::onPreview() SMESH::MeshPreviewStruct_var previewData = gen->Precompute(myMesh, myMainShape, (SMESH::Dimension)dim, aShapesId); - SMESH::MeshPreviewStruct* previewRes = previewData._retn(); - if ( previewRes && previewRes->nodesXYZ.length() > 0 ) + if ( & previewData.in() && previewData->nodesXYZ.length() > 0 ) { computeFailed = false; - myPreviewDisplayer->SetData( previewRes ); + myPreviewDisplayer->SetData( previewData ); // append shape indices with computed mesh entities for ( int i = 0, n = aShapesId->length(); i < n; i++ ) myMapShapeId[ aShapesId[ i ] ] = 0; diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx b/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx index 3b038c5ff..ad0c20a81 100644 --- a/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx +++ b/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx @@ -265,7 +265,7 @@ bool SMESHGUI_ConvToQuadOp::onApply() prop->Delete(); SMESH::MeshPreviewStruct_var previewData = aEditor->GetPreviewData(); - myBadElemsPreview->SetData( previewData._retn() ); + myBadElemsPreview->SetData( previewData.in() ); myBadElemsPreview->SetVisibility(true); SUIT_MessageBox* mb = new SUIT_MessageBox(SUIT_MessageBox::Warning, diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx b/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx index cae3a0589..0ad8681df 100644 --- a/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx @@ -1112,7 +1112,7 @@ void SMESHGUI_ExtrusionAlongPathDlg::onDisplaySimulation( bool toDisplayPreview if( retVal == SMESH::SMESH_MeshEditor::EXTR_OK ) { SMESH::MeshPreviewStruct_var aMeshPreviewStruct = meshEditor->GetPreviewData(); - mySimulation->SetData( aMeshPreviewStruct._retn() ); + mySimulation->SetData( aMeshPreviewStruct.in() ); } else { hidePreview(); diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx b/src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx index b1e89e012..d17be56aa 100644 --- a/src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx @@ -1573,7 +1573,7 @@ void SMESHGUI_ExtrusionDlg::onDisplaySimulation( bool toDisplayPreview ) makeGroups ); } SMESH::MeshPreviewStruct_var aMeshPreviewStruct = meshEditor->GetPreviewData(); - mySimulation->SetData(aMeshPreviewStruct._retn()); + mySimulation->SetData(aMeshPreviewStruct); } catch (...) { hidePreview(); diff --git a/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx b/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx index 701fef8e4..719b8ebb9 100644 --- a/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx @@ -536,7 +536,7 @@ void SMESHGUI_FindElemByPointOp::redisplayPreview() myPreview->nodesXYZ[0].z = myDlg->myZ->GetValue(); if (!mySimulation) mySimulation = new SMESHGUI_MeshEditPreview(SMESH::GetViewWindow( mySMESHGUI )); - mySimulation->SetData( myPreview._retn()); + mySimulation->SetData( myPreview.in()); } //================================================================================ diff --git a/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx b/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx index 3c131f2b1..f1b55af95 100644 --- a/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx @@ -811,9 +811,9 @@ void SMESHGUI_MakeNodeAtPointOp::redisplayPreview() if (!mySimulation) mySimulation = new SMESHGUI_MeshEditPreview(SMESH::GetViewWindow( mySMESHGUI )); // display data - if ( aMeshPreviewStruct.operator->() ) + if ( & aMeshPreviewStruct.in() ) { - mySimulation->SetData(aMeshPreviewStruct._retn()); + mySimulation->SetData( aMeshPreviewStruct.in() ); } else { diff --git a/src/SMESHGUI/SMESHGUI_MeshEditPreview.cxx b/src/SMESHGUI/SMESHGUI_MeshEditPreview.cxx index 1e58474dd..0ebdfe5fd 100644 --- a/src/SMESHGUI/SMESHGUI_MeshEditPreview.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshEditPreview.cxx @@ -167,10 +167,10 @@ vtkIdType getCellType( const SMDSAbs_ElementType theType, */ //================================================================================ -void SMESHGUI_MeshEditPreview::SetData (const SMESH::MeshPreviewStruct_var previewData) +void SMESHGUI_MeshEditPreview::SetData (const SMESH::MeshPreviewStruct& previewData) { // Create points - const SMESH::nodes_array& aNodesXYZ = previewData->nodesXYZ; + const SMESH::nodes_array& aNodesXYZ = previewData.nodesXYZ; vtkPoints* aPoints = vtkPoints::New(); aPoints->SetNumberOfPoints(aNodesXYZ.length()); @@ -182,8 +182,8 @@ void SMESHGUI_MeshEditPreview::SetData (const SMESH::MeshPreviewStruct_var previ aPoints->Delete(); // Create cells - const SMESH::long_array& anElemConnectivity = previewData->elementConnectivities; - const SMESH::types_array& anElemTypes = previewData->elementTypes; + const SMESH::long_array& anElemConnectivity = previewData.elementConnectivities; + const SMESH::types_array& anElemTypes = previewData.elementTypes; vtkIdType aCellsSize = anElemConnectivity.length() + anElemTypes.length(); vtkIdType aNbCells = anElemTypes.length(); diff --git a/src/SMESHGUI/SMESHGUI_MeshEditPreview.h b/src/SMESHGUI/SMESHGUI_MeshEditPreview.h index 6d58999ad..f7873298e 100644 --- a/src/SMESHGUI/SMESHGUI_MeshEditPreview.h +++ b/src/SMESHGUI/SMESHGUI_MeshEditPreview.h @@ -57,7 +57,7 @@ public: SMESHGUI_MeshEditPreview( SVTK_ViewWindow* ); ~SMESHGUI_MeshEditPreview(); - void SetData( const SMESH::MeshPreviewStruct_var ); + void SetData( const SMESH::MeshPreviewStruct& ); void SetVisibility( bool ); void SetColor( double, double, double ); diff --git a/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx b/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx index a1d1f3e6b..19a08d1b9 100755 --- a/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx @@ -1242,7 +1242,7 @@ void SMESHGUI_UnionOfTrianglesDlg::onDisplaySimulation( bool toDisplayPreview ) mySimulation->GetActor()->SetProperty( aProp ); aProp->Delete(); - mySimulation->SetData( aMeshPreviewStruct._retn() ); + mySimulation->SetData( aMeshPreviewStruct.in() ); } catch ( ... ) { hidePreview(); } diff --git a/src/SMESHGUI/SMESHGUI_PreviewDlg.cxx b/src/SMESHGUI/SMESHGUI_PreviewDlg.cxx index f1f1a1f11..99158f806 100644 --- a/src/SMESHGUI/SMESHGUI_PreviewDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_PreviewDlg.cxx @@ -248,7 +248,7 @@ void SMESHGUI_MultiPreviewDlg::setSimulationPreview( QListSetData( theMeshPreviewStruct[i].operator->() ); + mySimulationList[i]->SetData( theMeshPreviewStruct[i].in() ); } } diff --git a/src/SMESHGUI/SMESHGUI_ReorientFacesDlg.cxx b/src/SMESHGUI/SMESHGUI_ReorientFacesDlg.cxx index 51c993fd5..a83e66bee 100644 --- a/src/SMESHGUI/SMESHGUI_ReorientFacesDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ReorientFacesDlg.cxx @@ -933,9 +933,9 @@ void SMESHGUI_ReorientFacesOp::redisplayPreview() // } // // display data -// if ( aMeshPreviewStruct.operator->() ) +// if ( & aMeshPreviewStruct.in() ) // { -// myVectorPreview->SetData(aMeshPreviewStruct._retn()); +// myVectorPreview->SetData(aMeshPreviewStruct.in()); // } // else // { diff --git a/src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx b/src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx index 30be2c543..11aae4d21 100644 --- a/src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx @@ -796,7 +796,7 @@ void SMESHGUI_RevolutionDlg::onDisplaySimulation(bool toDisplayPreview) anAxis, anAngle, aNbSteps, aTolerance, makeGroups ); SMESH::MeshPreviewStruct_var aMeshPreviewStruct = meshEditor->GetPreviewData(); - mySimulation->SetData( aMeshPreviewStruct._retn() ); + mySimulation->SetData( aMeshPreviewStruct.in() ); } catch (...) {} } -- 2.30.2