From 5bf1fb8dcee942a93e7f1a9eb1f92f9635cf6af2 Mon Sep 17 00:00:00 2001 From: pkv Date: Mon, 31 Aug 2015 10:36:20 +0300 Subject: [PATCH] 0026616: Memory leak in IntTools_Context::Hatcher I. New features: No new features II.2. class IntTools_Context - method: Geom2dHatch_Hatcher& IntTools_Context::Hatcher (const TopoDS_Face& aF) - method: IntTools_SurfaceRangeLocalizeData& IntTools_Context::SurfaceData (const TopoDS_Face& aF) The memory allocation is provided using inner allocator of the object. II. Modified entities: packages: IntTools --- src/IntTools/IntTools_Context.cxx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/IntTools/IntTools_Context.cxx b/src/IntTools/IntTools_Context.cxx index 240eb8a33a..9501d58a9e 100644 --- a/src/IntTools/IntTools_Context.cxx +++ b/src/IntTools/IntTools_Context.cxx @@ -396,10 +396,11 @@ Geom2dHatch_Hatcher& IntTools_Context::Hatcher(const TopoDS_Face& aF) aEpsT=Precision::PConfusion(); // Geom2dHatch_Intersector aIntr(aTolArcIntr, aTolTangfIntr); - pHatcher=new Geom2dHatch_Hatcher(aIntr, - aTolHatch2D, aTolHatch3D, - Standard_True, Standard_False); - + pHatcher=(Geom2dHatch_Hatcher*) + myAllocator->Allocate(sizeof(Geom2dHatch_Hatcher)); + new (pHatcher) Geom2dHatch_Hatcher(aIntr, + aTolHatch2D, aTolHatch3D, + Standard_True, Standard_False); // aFF=aF; aFF.Orientation(TopAbs_FORWARD); @@ -445,7 +446,9 @@ IntTools_SurfaceRangeLocalizeData& IntTools_Context::SurfaceData IntTools_SurfaceRangeLocalizeData* pSData; // if (!myProjSDataMap.IsBound(aF)) { - pSData=new IntTools_SurfaceRangeLocalizeData + pSData=(IntTools_SurfaceRangeLocalizeData*) + myAllocator->Allocate(sizeof(IntTools_SurfaceRangeLocalizeData)); + new (pSData) IntTools_SurfaceRangeLocalizeData (3, 3, 10. * Precision::PConfusion(),