From d922149528e604bbd1f8dbe5cc5ab161a3e2b0ae Mon Sep 17 00:00:00 2001 From: kgv Date: Mon, 12 Oct 2020 18:00:22 +0300 Subject: [PATCH] 0031842: Coding Rules, BOPAlgo - eliminate CLang warning -fsanitize=undefined reference binding to null pointer Added NULL checks before Progress Scope pointer dereference. --- src/BOPAlgo/BOPAlgo_BOP.cxx | 5 ++++- src/BOPAlgo/BOPAlgo_Builder.cxx | 10 ++++++++-- src/BOPAlgo/BOPAlgo_Builder_2.cxx | 15 ++++++++++++--- src/BOPAlgo/BOPAlgo_Builder_3.cxx | 5 ++++- src/BOPAlgo/BOPAlgo_CheckerSI.cxx | 5 ++++- src/BOPAlgo/BOPAlgo_MakerVolume.cxx | 5 ++++- src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx | 5 ++++- src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx | 14 ++++++++++++-- src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx | 5 ++++- src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx | 10 ++++++++-- src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx | 10 ++++++++-- src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx | 20 ++++++++++++++++---- src/BOPAlgo/BOPAlgo_Splitter.cxx | 5 ++++- src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx | 10 ++++++++-- src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx | 5 ++++- 15 files changed, 104 insertions(+), 25 deletions(-) diff --git a/src/BOPAlgo/BOPAlgo_BOP.cxx b/src/BOPAlgo/BOPAlgo_BOP.cxx index b516015c49..b3367e2eb0 100644 --- a/src/BOPAlgo/BOPAlgo_BOP.cxx +++ b/src/BOPAlgo/BOPAlgo_BOP.cxx @@ -387,7 +387,10 @@ void BOPAlgo_BOP::Perform() pPF=new BOPAlgo_PaveFiller(aAllocator); pPF->SetArguments(aLS); pPF->SetRunParallel(myRunParallel); - pPF->SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + pPF->SetProgressIndicator(*myProgressScope); + } pPF->SetFuzzyValue(myFuzzyValue); pPF->SetNonDestructive(myNonDestructive); pPF->SetGlue(myGlue); diff --git a/src/BOPAlgo/BOPAlgo_Builder.cxx b/src/BOPAlgo/BOPAlgo_Builder.cxx index e46106ef49..7ef864a1b6 100644 --- a/src/BOPAlgo/BOPAlgo_Builder.cxx +++ b/src/BOPAlgo/BOPAlgo_Builder.cxx @@ -195,7 +195,10 @@ void BOPAlgo_Builder::Perform() // pPF->SetArguments(myArguments); pPF->SetRunParallel(myRunParallel); - pPF->SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + pPF->SetProgressIndicator(*myProgressScope); + } pPF->SetFuzzyValue(myFuzzyValue); pPF->SetNonDestructive(myNonDestructive); pPF->SetGlue(myGlue); @@ -632,7 +635,10 @@ void BOPAlgo_Builder::BuildBOP(const TopTools_ListOfShape& theObjects, aBS.SetRunParallel(myRunParallel); aBS.SetContext(myContext); aBS.SetFuzzyValue(myFuzzyValue); - aBS.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + aBS.SetProgressIndicator(*myProgressScope); + } aBS.Perform(); // Resulting solids diff --git a/src/BOPAlgo/BOPAlgo_Builder_2.cxx b/src/BOPAlgo/BOPAlgo_Builder_2.cxx index 09a57fa46a..a0a2fc870c 100644 --- a/src/BOPAlgo/BOPAlgo_Builder_2.cxx +++ b/src/BOPAlgo/BOPAlgo_Builder_2.cxx @@ -450,7 +450,10 @@ void BOPAlgo_Builder::BuildSplitFaces() aBF.SetFace(aF); aBF.SetShapes(aLE); aBF.SetRunParallel(myRunParallel); - aBF.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + aBF.SetProgressIndicator(*myProgressScope); + } // }// for (i=0; iSetRunParallel(myRunParallel); - pPF->SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + pPF->SetProgressIndicator(*myProgressScope); + } pPF->SetFuzzyValue(myFuzzyValue); pPF->SetNonDestructive(myNonDestructive); pPF->SetGlue(myGlue); diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx index 593557621f..ee6b573d59 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx @@ -264,7 +264,10 @@ void BOPAlgo_PaveFiller::IntersectVE aVESolver.SetEdge(aE); aVESolver.SetPaveBlock(aPB); aVESolver.SetFuzzyValue(myFuzzyValue); - aVESolver.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + aVESolver.SetProgressIndicator(*myProgressScope); + } } } // diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx index a100b82f7c..c199a87c8c 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx @@ -253,7 +253,10 @@ void BOPAlgo_PaveFiller::PerformEE() anEdgeEdge.SetEdge2(aE2, aT21, aT22); anEdgeEdge.SetBoxes (aBB1, aBB2); anEdgeEdge.SetFuzzyValue(myFuzzyValue); - anEdgeEdge.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + anEdgeEdge.SetProgressIndicator(*myProgressScope); + } }//for (; aIt2.More(); aIt2.Next()) { }//for (; aIt1.More(); aIt1.Next()) { }//for (; myIterator->More(); myIterator->Next()) { @@ -1070,10 +1073,17 @@ void BOPAlgo_PaveFiller::ForceInterfEE() anEdgeEdge.SetEdge2(aE2, aT21, aT22); anEdgeEdge.SetBoxes (myDS->ShapeInfo(nE1).Box(), myDS->ShapeInfo (nE2).Box()); if (bUseAddTol) + { anEdgeEdge.SetFuzzyValue(myFuzzyValue + aTolAdd); + } else + { anEdgeEdge.SetFuzzyValue(myFuzzyValue); - anEdgeEdge.SetProgressIndicator(*myProgressScope); + } + if (myProgressScope != NULL) + { + anEdgeEdge.SetProgressIndicator(*myProgressScope); + } } } } diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx index e794d632f5..9a289ddf6d 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx @@ -217,7 +217,10 @@ void BOPAlgo_PaveFiller::PerformVF() aVertexFace.SetVertex(aV); aVertexFace.SetFace(aF); aVertexFace.SetFuzzyValue(myFuzzyValue); - aVertexFace.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + aVertexFace.SetProgressIndicator(*myProgressScope); + } }//for (; myIterator->More(); myIterator->Next()) { // aNbVF=aVVF.Length(); diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx index 550744b742..aebd4882d4 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx @@ -278,7 +278,10 @@ void BOPAlgo_PaveFiller::PerformEF() aSR = aPBRange; BOPTools_AlgoTools::CorrectRange(aE, aF, aSR, aPBRange); aEdgeFace.SetRange (aPBRange); - aEdgeFace.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + aEdgeFace.SetProgressIndicator(*myProgressScope); + } // Save the pair to avoid their forced intersection BOPDS_MapOfPaveBlock* pMPB = myFPBDone.ChangeSeek(nF); if (!pMPB) @@ -1010,7 +1013,10 @@ void BOPAlgo_PaveFiller::ForceInterfEF(const BOPDS_IndexedMapOfPaveBlock& theMPB aEdgeFace.SetFuzzyValue(myFuzzyValue + aTolAdd); aEdgeFace.UseQuickCoincidenceCheck(Standard_True); aEdgeFace.SetRange(IntTools_Range(aPB->Pave1().Parameter(), aPB->Pave2().Parameter())); - aEdgeFace.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + aEdgeFace.SetProgressIndicator(*myProgressScope); + } } } } diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx index 3d6d02918b..9c35a81fcf 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx @@ -308,7 +308,10 @@ void BOPAlgo_PaveFiller::PerformFF() // aFaceFace.SetParameters(bApprox, bCompC2D1, bCompC2D2, anApproxTol); aFaceFace.SetFuzzyValue(myFuzzyValue); - aFaceFace.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + aFaceFace.SetProgressIndicator(*myProgressScope); + } } else { // for the Glue mode just add all interferences of that type @@ -1019,7 +1022,10 @@ void BOPAlgo_PaveFiller::PostTreatFF } // // 2 Fuse shapes - aPF.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + aPF.SetProgressIndicator(*myProgressScope); + } aPF.SetRunParallel(myRunParallel); aPF.SetArguments(aLS); aPF.Perform(); diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx index 18467d0e31..11a0cacc39 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx @@ -484,7 +484,10 @@ void BOPAlgo_PaveFiller::MakeSplitEdges() aBSE.SetCommonBlock(aCB); } aBSE.SetDS(myDS); - aBSE.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + aBSE.SetProgressIndicator(*myProgressScope); + } } // for (; aItPB.More(); aItPB.Next()) { } // for (i=0; iSetArguments(aLS); pPF->SetRunParallel(myRunParallel); - pPF->SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + pPF->SetProgressIndicator(*myProgressScope); + } pPF->SetFuzzyValue(myFuzzyValue); pPF->SetNonDestructive(myNonDestructive); pPF->SetGlue(myGlue); diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx b/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx index 0046e4fb9b..4e310b2f6d 100644 --- a/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx +++ b/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx @@ -125,7 +125,10 @@ void BRepAlgoAPI_BuilderAlgo::IntersectShapes(const TopTools_ListOfShape& theArg myDSFiller->SetArguments(theArgs); // Set options for intersection myDSFiller->SetRunParallel(myRunParallel); - myDSFiller->SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + myDSFiller->SetProgressIndicator(*myProgressScope); + } myDSFiller->SetFuzzyValue(myFuzzyValue); myDSFiller->SetNonDestructive(myNonDestructive); myDSFiller->SetGlue(myGlue); @@ -145,7 +148,10 @@ void BRepAlgoAPI_BuilderAlgo::BuildResult() { // Set options to the builder myBuilder->SetRunParallel(myRunParallel); - myBuilder->SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + myBuilder->SetProgressIndicator(*myProgressScope); + } myBuilder->SetCheckInverted(myCheckInverted); myBuilder->SetToFillHistory(myFillHistory); // Perform building of the result with pre-calculated intersections diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx b/src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx index d906ff207e..3dc0098779 100644 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx @@ -94,7 +94,10 @@ void BRepAlgoAPI_Check::Perform() anAnalyzer.SelfInterMode() = myTestSI; // Set options from BOPAlgo_Options anAnalyzer.SetRunParallel(myRunParallel); - anAnalyzer.SetProgressIndicator(*myProgressScope); + if (myProgressScope != NULL) + { + anAnalyzer.SetProgressIndicator(*myProgressScope); + } anAnalyzer.SetFuzzyValue(myFuzzyValue); // Perform the check anAnalyzer.Perform(); -- 2.39.5