0026377: Passing Handle objects as arguments to functions as non-const reference...
authorabv <abv@opencascade.com>
Wed, 17 Feb 2016 14:33:18 +0000 (17:33 +0300)
committerabv <abv@opencascade.com>
Sat, 20 Feb 2016 07:10:11 +0000 (10:10 +0300)
commitaa00364da7f3f2c7d01a6c086dfd3dee4cd60182
treea29bdeb2b42095c4f2663aa0ff8b98211cd883be
parentfe9b8ff2f2a2429b879dd3f03eae1fa8c7a03c53
0026377: Passing Handle objects as arguments to functions as non-const reference to base type is dangerous

Operator of cast to non-const reference is declared deprecated to produce compiler warning if used (usually implicitly).

OCCT code is updated to avoid that cast, occurring when function accepting non-const reference to handle is called with handle to derived type.
For that, local variable of argument type is passed instead, and down-cast is used to get it to desired type after the call.
A few occurrences of use of uninitialized variable are corrected.
59 files changed:
src/AIS/AIS_AngleDimension.cxx
src/AIS/AIS_Chamf2dDimension.cxx
src/AIS/AIS_SymmetricRelation.cxx
src/BinDrivers/BinDrivers_DocumentRetrievalDriver.cxx
src/BinDrivers/BinDrivers_DocumentStorageDriver.cxx
src/BinMXCAFDoc/BinMXCAFDoc.cxx
src/DDF/DDF.hxx
src/DDocStd/DDocStd.hxx
src/Dico/Dico_DictionaryOfTransient.hxx
src/DrawTrSurf/DrawTrSurf.cxx
src/GeomTools/GeomTools.cxx
src/GeomTools/GeomTools_Curve2dSet.cxx
src/GeomTools/GeomTools_Curve2dSet.hxx
src/GeomTools/GeomTools_CurveSet.cxx
src/GeomTools/GeomTools_CurveSet.hxx
src/GeomTools/GeomTools_SurfaceSet.cxx
src/GeomTools/GeomTools_SurfaceSet.hxx
src/IFSelect/IFSelect_Activator.cxx
src/IGESData/IGESData_BasicEditor.cxx
src/IGESData/IGESData_FreeFormatEntity.cxx
src/IGESData/IGESData_IGESReaderTool.cxx
src/IGESData/IGESData_ParamReader.cxx
src/IGESData/IGESData_ParamReader.hxx
src/IGESData/IGESData_ToolLocation.cxx
src/IGESDraw/IGESDraw_ToolViewsVisible.cxx
src/IGESDraw/IGESDraw_ToolViewsVisibleWithAttr.cxx
src/IGESGeom/IGESGeom_ToolBoundedSurface.cxx
src/IGESSelect/IGESSelect_RebuildDrawings.cxx
src/IGESSolid/IGESSolid_ToolManifoldSolid.cxx
src/IGESSolid/IGESSolid_ToolToroidalSurface.cxx
src/IntTools/IntTools_FaceFace.cxx
src/Interface/Interface_CopyTool.cxx
src/MoniTool/MoniTool_Profile.cxx
src/OpenGl/OpenGl_Context.cxx
src/OpenGl/OpenGl_Context.hxx
src/OpenGl/OpenGl_View_Raytrace.cxx
src/PrsMgr/PrsMgr_PresentationManager.cxx
src/QANCollection/QANCollection_Handle.cxx
src/STEPCAFControl/STEPCAFControl_Writer.cxx
src/Select3D/Select3D_SensitiveGroup.cxx
src/Standard/Standard_Handle.hxx
src/StdObjMgt/StdObjMgt_ReadData.hxx
src/StepData/StepData_StepReaderData.cxx
src/StepData/StepData_StepReaderData.hxx
src/StepData/StepData_StepReaderTool.cxx
src/TDF/TDF_Attribute.hxx
src/TDF/TDF_Label.hxx
src/TDF/TDF_RelocationTable.hxx
src/TNaming/TNaming_NamedShape.cxx
src/TPrsStd/TPrsStd_ConstraintTools.cxx
src/Transfer/Transfer_ProcessForFinder.hxx
src/VrmlData/VrmlData_IndexedFaceSet.cxx
src/VrmlData/VrmlData_IndexedLineSet.cxx
src/VrmlData/VrmlData_Node.cxx
src/XmlDrivers/XmlDrivers_DocumentRetrievalDriver.cxx
src/XmlDrivers/XmlDrivers_DocumentStorageDriver.cxx
src/XmlMXCAFDoc/XmlMXCAFDoc.cxx
tests/de/iges_2/F9
tests/perf/fclasses/handle