]> OCCT Git - occt-copy.git/commitdiff
0026616: Memory leak in IntTools_Context::Hatcher
authorpkv <pkv@opencascade.com>
Mon, 31 Aug 2015 07:36:20 +0000 (10:36 +0300)
committerabv <abv@opencascade.com>
Thu, 17 Sep 2015 11:33:22 +0000 (14:33 +0300)
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

index 240eb8a33ab8fb8b348a1dfedaf6c82e60501e86..9501d58a9e94a803fa7745a00fc231d81ad1064c 100644 (file)
@@ -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(),