From ad67e36766277ce9c858bb2a6166c5a7105eaa9f Mon Sep 17 00:00:00 2001 From: kgv Date: Sat, 16 Mar 2019 18:55:36 +0300 Subject: [PATCH] 0030588: Coding - avoid calling operator->() on NULL Handle Use .get() method instead of operator->() where result can be NULL. STEPCAFControl_Reader::ReadLayers(), XCAFDoc_ColorTool, XCAFDoc_LayerTool::SetVisibility() - fixed static functions syntax. --- src/Expr/Expr_NamedExpression.cxx | 2 +- src/MAT/MAT_Arc.cxx | 16 +++---- src/MAT/MAT_BasicElt.cxx | 4 +- src/MAT/MAT_Node.cxx | 4 +- src/OpenGl/OpenGl_Group.cxx | 4 +- src/OpenGl/OpenGl_PrimitiveArray.cxx | 2 +- src/OpenGl/OpenGl_View.cxx | 47 +++++++++++--------- src/OpenGl/OpenGl_View_Raytrace.cxx | 12 ++--- src/OpenGl/OpenGl_View_Redraw.cxx | 4 +- src/STEPCAFControl/STEPCAFControl_Reader.cxx | 3 +- src/Storage/Storage_Schema.cxx | 4 +- src/TopoDS/TopoDS_Shape.cxx | 2 +- src/XCAFDoc/XCAFDoc_ColorTool.cxx | 4 +- src/XCAFDoc/XCAFDoc_LayerTool.cxx | 2 +- 14 files changed, 56 insertions(+), 54 deletions(-) diff --git a/src/Expr/Expr_NamedExpression.cxx b/src/Expr/Expr_NamedExpression.cxx index 5ed5c1f211..4731c0f52e 100644 --- a/src/Expr/Expr_NamedExpression.cxx +++ b/src/Expr/Expr_NamedExpression.cxx @@ -67,7 +67,7 @@ Standard_Boolean Expr_NamedExpression::IsIdentical //AGV 22.03.12: Comparison should be based on names rather than Handles const Expr_NamedExpression* pOther = - static_cast(theOther.operator->()); + static_cast(theOther.get()); if (pOther == this || pOther->GetName().IsEqual(myName)) aResult = Standard_True; } diff --git a/src/MAT/MAT_Arc.cxx b/src/MAT/MAT_Arc.cxx index 85c931c7e5..b617f7c76b 100644 --- a/src/MAT/MAT_Arc.cxx +++ b/src/MAT/MAT_Arc.cxx @@ -215,9 +215,9 @@ void MAT_Arc::SetFirstArc(const MAT_Side aSide , const Handle(MAT_Arc)& anArc) { if (aSide == MAT_Left) - firstArcLeft = anArc.operator->(); + firstArcLeft = anArc.get(); else - firstArcRight = anArc.operator->(); + firstArcRight = anArc.get(); } //======================================================================== @@ -228,9 +228,9 @@ void MAT_Arc::SetSecondArc(const MAT_Side aSide , const Handle(MAT_Arc)& anArc) { if (aSide == MAT_Left) - secondArcLeft = anArc.operator->(); + secondArcLeft = anArc.get(); else - secondArcRight = anArc.operator->(); + secondArcRight = anArc.get(); } //======================================================================== @@ -243,17 +243,17 @@ void MAT_Arc::SetNeighbour(const MAT_Side aSide, { if (aSide == MAT_Left) { if (aNode == FirstNode()) - firstArcLeft = anArc.operator->(); + firstArcLeft = anArc.get(); else if (aNode == SecondNode()) - secondArcLeft = anArc.operator->(); + secondArcLeft = anArc.get(); else throw Standard_DomainError("MAT_Arc::SetNeighbour"); } else { if (aNode == FirstNode()) - firstArcRight = anArc.operator->(); + firstArcRight = anArc.get(); else if (aNode == SecondNode()) - secondArcRight = anArc.operator->(); + secondArcRight = anArc.get(); else throw Standard_DomainError("MAT_Arc::SetNeighbour"); } diff --git a/src/MAT/MAT_BasicElt.cxx b/src/MAT/MAT_BasicElt.cxx index 987cb7a69f..9466cb1dae 100644 --- a/src/MAT/MAT_BasicElt.cxx +++ b/src/MAT/MAT_BasicElt.cxx @@ -77,7 +77,7 @@ Standard_Integer MAT_BasicElt::GeomIndex() const //======================================================================== void MAT_BasicElt::SetStartArc(const Handle(MAT_Arc)& anArc) { - startLeftArc = anArc.operator->(); + startLeftArc = anArc.get(); } @@ -87,7 +87,7 @@ void MAT_BasicElt::SetStartArc(const Handle(MAT_Arc)& anArc) //======================================================================== void MAT_BasicElt::SetEndArc(const Handle(MAT_Arc)& anArc) { - endLeftArc = anArc.operator->(); + endLeftArc = anArc.get(); } //======================================================================== diff --git a/src/MAT/MAT_Node.cxx b/src/MAT/MAT_Node.cxx index 77ef5fa8d2..1ade00f2e8 100644 --- a/src/MAT/MAT_Node.cxx +++ b/src/MAT/MAT_Node.cxx @@ -33,7 +33,7 @@ MAT_Node::MAT_Node(const Standard_Integer GeomIndex, : geomIndex(GeomIndex), distance(Distance) { - aLinkedArc = LinkedArc.operator->(); + aLinkedArc = LinkedArc.get(); } //============================================================================= @@ -156,7 +156,7 @@ Standard_Boolean MAT_Node::Infinite() const //============================================================================= void MAT_Node::SetLinkedArc (const Handle(MAT_Arc)& LinkedArc) { - aLinkedArc = LinkedArc.operator->(); + aLinkedArc = LinkedArc.get(); } //============================================================================= diff --git a/src/OpenGl/OpenGl_Group.cxx b/src/OpenGl/OpenGl_Group.cxx index 4c9fcf6acd..61ae607d21 100644 --- a/src/OpenGl/OpenGl_Group.cxx +++ b/src/OpenGl/OpenGl_Group.cxx @@ -378,11 +378,11 @@ void OpenGl_Group::Release (const Handle(OpenGl_Context)& theGlCtx) while (myFirst != NULL) { OpenGl_ElementNode* aNext = myFirst->next; - OpenGl_Element::Destroy (theGlCtx.operator->(), myFirst->elem); + OpenGl_Element::Destroy (theGlCtx.get(), myFirst->elem); delete myFirst; myFirst = aNext; } myLast = NULL; - OpenGl_Element::Destroy (theGlCtx.operator->(), myAspects); + OpenGl_Element::Destroy (theGlCtx.get(), myAspects); } diff --git a/src/OpenGl/OpenGl_PrimitiveArray.cxx b/src/OpenGl/OpenGl_PrimitiveArray.cxx index 30f7cd2a67..cec64bbe38 100644 --- a/src/OpenGl/OpenGl_PrimitiveArray.cxx +++ b/src/OpenGl/OpenGl_PrimitiveArray.cxx @@ -1104,7 +1104,7 @@ void OpenGl_PrimitiveArray::InitBuffers (const Handle(OpenGl_Context)& th const Handle(Graphic3d_BoundBuffer)& theBounds) { // Release old graphic resources - Release (theContext.operator->()); + Release (theContext.get()); myIndices = theIndices; myAttribs = theAttribs; diff --git a/src/OpenGl/OpenGl_View.cxx b/src/OpenGl/OpenGl_View.cxx index 1fd8b946f0..14495041f5 100644 --- a/src/OpenGl/OpenGl_View.cxx +++ b/src/OpenGl/OpenGl_View.cxx @@ -130,44 +130,47 @@ OpenGl_View::~OpenGl_View() // ======================================================================= void OpenGl_View::ReleaseGlResources (const Handle(OpenGl_Context)& theCtx) { - myGraduatedTrihedron.Release (theCtx.operator->()); - myFrameStatsPrs.Release (theCtx.operator->()); + myGraduatedTrihedron.Release (theCtx.get()); + myFrameStatsPrs.Release (theCtx.get()); if (!myTextureEnv.IsNull()) { - for (OpenGl_TextureSet::Iterator aTextureIter (myTextureEnv); aTextureIter.More(); aTextureIter.Next()) + if (!theCtx.IsNull()) { - theCtx->DelayedRelease (aTextureIter.ChangeValue()); - aTextureIter.ChangeValue().Nullify(); + for (OpenGl_TextureSet::Iterator aTextureIter (myTextureEnv); aTextureIter.More(); aTextureIter.Next()) + { + theCtx->DelayedRelease (aTextureIter.ChangeValue()); + aTextureIter.ChangeValue().Nullify(); + } } myTextureEnv.Nullify(); } if (myTextureParams != NULL) { - myTextureParams->Release (theCtx.operator->()); + myTextureParams->Release (theCtx.get()); } if (myBgGradientArray != NULL) { - myBgGradientArray->Release (theCtx.operator->()); + myBgGradientArray->Release (theCtx.get()); } if (myBgTextureArray != NULL) { - myBgTextureArray->Release (theCtx.operator->()); - } - - myMainSceneFbos[0] ->Release (theCtx.operator->()); - myMainSceneFbos[1] ->Release (theCtx.operator->()); - myMainSceneFbosOit[0] ->Release (theCtx.operator->()); - myMainSceneFbosOit[1] ->Release (theCtx.operator->()); - myImmediateSceneFbos[0] ->Release (theCtx.operator->()); - myImmediateSceneFbos[1] ->Release (theCtx.operator->()); - myImmediateSceneFbosOit[0]->Release (theCtx.operator->()); - myImmediateSceneFbosOit[1]->Release (theCtx.operator->()); - myOpenGlFBO ->Release (theCtx.operator->()); - myOpenGlFBO2 ->Release (theCtx.operator->()); - myFullScreenQuad .Release (theCtx.operator->()); - myFullScreenQuadFlip .Release (theCtx.operator->()); + myBgTextureArray->Release (theCtx.get()); + } + + myMainSceneFbos[0] ->Release (theCtx.get()); + myMainSceneFbos[1] ->Release (theCtx.get()); + myMainSceneFbosOit[0] ->Release (theCtx.get()); + myMainSceneFbosOit[1] ->Release (theCtx.get()); + myImmediateSceneFbos[0] ->Release (theCtx.get()); + myImmediateSceneFbos[1] ->Release (theCtx.get()); + myImmediateSceneFbosOit[0]->Release (theCtx.get()); + myImmediateSceneFbosOit[1]->Release (theCtx.get()); + myOpenGlFBO ->Release (theCtx.get()); + myOpenGlFBO2 ->Release (theCtx.get()); + myFullScreenQuad .Release (theCtx.get()); + myFullScreenQuadFlip .Release (theCtx.get()); releaseRaytraceResources (theCtx); } diff --git a/src/OpenGl/OpenGl_View_Raytrace.cxx b/src/OpenGl/OpenGl_View_Raytrace.cxx index 7245548bea..d0ee3b22b1 100644 --- a/src/OpenGl/OpenGl_View_Raytrace.cxx +++ b/src/OpenGl/OpenGl_View_Raytrace.cxx @@ -1797,7 +1797,7 @@ inline void nullifyResource (const Handle(OpenGl_Context)& theGlContext, Handle( { if (!theResource.IsNull()) { - theResource->Release (theGlContext.operator->()); + theResource->Release (theGlContext.get()); theResource.Nullify(); } } @@ -1818,10 +1818,10 @@ void OpenGl_View::releaseRaytraceResources (const Handle(OpenGl_Context)& theGlC if (!theToRebuild) // complete release { - myRaytraceFBO1[0]->Release (theGlContext.operator->()); - myRaytraceFBO1[1]->Release (theGlContext.operator->()); - myRaytraceFBO2[0]->Release (theGlContext.operator->()); - myRaytraceFBO2[1]->Release (theGlContext.operator->()); + myRaytraceFBO1[0]->Release (theGlContext.get()); + myRaytraceFBO1[1]->Release (theGlContext.get()); + myRaytraceFBO2[0]->Release (theGlContext.get()); + myRaytraceFBO2[1]->Release (theGlContext.get()); nullifyResource (theGlContext, myRaytraceOutputTexture[0]); nullifyResource (theGlContext, myRaytraceOutputTexture[1]); @@ -1850,7 +1850,7 @@ void OpenGl_View::releaseRaytraceResources (const Handle(OpenGl_Context)& theGlC if (myRaytraceScreenQuad.IsValid ()) { - myRaytraceScreenQuad.Release (theGlContext.operator->()); + myRaytraceScreenQuad.Release (theGlContext.get()); } } } diff --git a/src/OpenGl/OpenGl_View_Redraw.cxx b/src/OpenGl/OpenGl_View_Redraw.cxx index 5857d1140d..cdf41b616d 100644 --- a/src/OpenGl/OpenGl_View_Redraw.cxx +++ b/src/OpenGl/OpenGl_View_Redraw.cxx @@ -174,7 +174,7 @@ void OpenGl_View::Redraw() // fetch OpenGl context state aCtx->FetchState(); - OpenGl_FrameBuffer* aFrameBuffer = myFBO.operator->(); + OpenGl_FrameBuffer* aFrameBuffer = myFBO.get(); bool toSwap = aCtx->IsRender() && !aCtx->caps->buffersNoSwap && aFrameBuffer == NULL; @@ -600,7 +600,7 @@ void OpenGl_View::RedrawImmediate() const Graphic3d_StereoMode aStereoMode = myRenderParams.StereoMode; Graphic3d_Camera::Projection aProjectType = myCamera->ProjectionType(); - OpenGl_FrameBuffer* aFrameBuffer = myFBO.operator->(); + OpenGl_FrameBuffer* aFrameBuffer = myFBO.get(); aCtx->FrameStats()->FrameStart (myWorkspace->View(), true); if ( aFrameBuffer == NULL diff --git a/src/STEPCAFControl/STEPCAFControl_Reader.cxx b/src/STEPCAFControl/STEPCAFControl_Reader.cxx index 8852b5684b..afeae40835 100644 --- a/src/STEPCAFControl/STEPCAFControl_Reader.cxx +++ b/src/STEPCAFControl/STEPCAFControl_Reader.cxx @@ -1406,8 +1406,7 @@ Standard_Boolean STEPCAFControl_Reader::ReadLayers(const Handle(XSControl_WorkSe #endif //TDF_Label InvLayerLab = LTool->FindLayer(aLayerName); TDF_Label InvLayerLab = LTool->AddLayer(aLayerName); //skl for OCC3926 - Handle(TDataStd_UAttribute) aUAttr; - aUAttr->Set(InvLayerLab, XCAFDoc::InvisibleGUID()); + TDataStd_UAttribute::Set (InvLayerLab, XCAFDoc::InvisibleGUID()); } } return Standard_True; diff --git a/src/Storage/Storage_Schema.cxx b/src/Storage/Storage_Schema.cxx index 720e2fe11d..f6e8007019 100644 --- a/src/Storage/Storage_Schema.cxx +++ b/src/Storage/Storage_Schema.cxx @@ -177,7 +177,7 @@ void Storage_BucketOfPersistent::Append(const Handle(Standard_Persistent)& sp) if (myCurrentBucket->myCurrentSpace != myBucketSize) { myLength++; - myCurrentBucket->mySpace[myCurrentBucket->myCurrentSpace] = sp.operator->(); + myCurrentBucket->mySpace[myCurrentBucket->myCurrentSpace] = sp.get(); return; } @@ -195,7 +195,7 @@ void Storage_BucketOfPersistent::Append(const Handle(Standard_Persistent)& sp) myCurrentBucket = myBuckets[myCurrentBucketNumber]; myCurrentBucket->myCurrentSpace++; myLength++; - myCurrentBucket->mySpace[myCurrentBucket->myCurrentSpace] = sp.operator->(); + myCurrentBucket->mySpace[myCurrentBucket->myCurrentSpace] = sp.get(); } //======================================================================= diff --git a/src/TopoDS/TopoDS_Shape.cxx b/src/TopoDS/TopoDS_Shape.cxx index 893956f9c9..9f91bdd15e 100644 --- a/src/TopoDS/TopoDS_Shape.cxx +++ b/src/TopoDS/TopoDS_Shape.cxx @@ -29,7 +29,7 @@ Standard_Integer TopoDS_Shape::HashCode(const Standard_Integer Upper) const { //PKV - const Standard_Integer aI = (Standard_Integer) ptrdiff_t(myTShape.operator->()); + const Standard_Integer aI = (Standard_Integer) ptrdiff_t(myTShape.get()); const Standard_Integer aHS = ::HashCode(aI,Upper); const Standard_Integer aHL = myLocation.HashCode(Upper); return (aHS^aHL)%Upper; diff --git a/src/XCAFDoc/XCAFDoc_ColorTool.cxx b/src/XCAFDoc/XCAFDoc_ColorTool.cxx index 0c98aa410d..1385f83a57 100644 --- a/src/XCAFDoc/XCAFDoc_ColorTool.cxx +++ b/src/XCAFDoc/XCAFDoc_ColorTool.cxx @@ -553,7 +553,7 @@ void XCAFDoc_ColorTool::SetVisibility (const TDF_Label& L, Handle(XCAFDoc_GraphNode) aSHUO; if (ShapeTool()->IsShape(L) || ShapeTool()->GetSHUO( L, aSHUO ) ) if (!L.FindAttribute(XCAFDoc::InvisibleGUID(), aUAttr)) - aUAttr->Set( L, XCAFDoc::InvisibleGUID() ); + TDataStd_UAttribute::Set( L, XCAFDoc::InvisibleGUID() ); } else L.ForgetAttribute( XCAFDoc::InvisibleGUID() ); } @@ -582,7 +582,7 @@ void XCAFDoc_ColorTool::SetColorByLayer (const TDF_Label& L, Handle(XCAFDoc_GraphNode) aSHUO; if (ShapeTool()->IsShape(L) || ShapeTool()->GetSHUO( L, aSHUO ) ) if (!L.FindAttribute(XCAFDoc::ColorByLayerGUID(), aUAttr)) - aUAttr->Set( L, XCAFDoc::ColorByLayerGUID() ); + TDataStd_UAttribute::Set( L, XCAFDoc::ColorByLayerGUID() ); } else L.ForgetAttribute( XCAFDoc::ColorByLayerGUID() ); } diff --git a/src/XCAFDoc/XCAFDoc_LayerTool.cxx b/src/XCAFDoc/XCAFDoc_LayerTool.cxx index 0ac9db14c4..db5d16d417 100644 --- a/src/XCAFDoc/XCAFDoc_LayerTool.cxx +++ b/src/XCAFDoc/XCAFDoc_LayerTool.cxx @@ -432,7 +432,7 @@ void XCAFDoc_LayerTool::SetVisibility (const TDF_Label& layerL, Handle(TDataStd_UAttribute) aUAttr; if (! isvisible ) { if (!layerL.FindAttribute(XCAFDoc::InvisibleGUID(), aUAttr)) { - aUAttr->Set( layerL, XCAFDoc::InvisibleGUID() ); + TDataStd_UAttribute::Set( layerL, XCAFDoc::InvisibleGUID() ); } } else layerL.ForgetAttribute( XCAFDoc::InvisibleGUID() ); -- 2.20.1