]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
ParaMEDMemTest: bug fix: dangling pointer on stack.
authorabn <adrien.bruneton@cea.fr>
Mon, 1 Feb 2021 09:45:14 +0000 (10:45 +0100)
committerabn <adrien.bruneton@cea.fr>
Mon, 1 Feb 2021 09:47:32 +0000 (10:47 +0100)
+ indentation on MEDCouplingRemapperTest.cxx

src/MEDCoupling/Test/MEDCouplingRemapperTest.cxx
src/ParaMEDMEMTest/ParaMEDMEMTest_InterpKernelDEC.cxx

index a29860af8463b583199e92061019c0a130e8d3d1..736d1fd30a17cd1866723be436580b6f3a3e6261 100644 (file)
@@ -1290,29 +1290,29 @@ void MEDCouplingRemapperTest::testBugNonRegression1()
   coordsSrc->decrRef(); connSrc->decrRef(); connISrc->decrRef();
   // target
   DataArrayDouble *coordsTrg(DataArrayDouble::New());
-const double coordsTrgData[36]={-2,1.1547005383792521,264.85199999999998,-2,0.57735026918962618,264.85199999999998,-2.5,0.2886751345948132,264.85199999999998,-2.5,1.443375672974065,264.85199999999998,-3.0000000000000004,1.1547005383792526,264.85199999999998,-3.0000000000000004,0.57735026918962662,264.85199999999998,-2,1.1547005383792521,289.05200000000002,-2,0.57735026918962618,289.05200000000002,-2.5,0.2886751345948132,289.05200000000002,-2.5,1.443375672974065,289.05200000000002,-3.0000000000000004,1.1547005383792526,289.05200000000002,-3.0000000000000004,0.57735026918962662,289.05200000000002};
- coordsTrg->useArray(coordsTrgData,false,DeallocType::CPP_DEALLOC,12,3);
- DataArrayIdType *connTrg=DataArrayIdType::New();
- const mcIdType connTrgData[44]={31,0,1,2,5,4,3,-1,7,6,9,10,11,8,-1,3,9,6,0,-1,4,10,9,3,-1,5,11,10,4,-1,2,8,11,5,-1,1,7,8,2,-1,0,6,7,1};
- connTrg->useArray(connTrgData,false,DeallocType::CPP_DEALLOC,44,1);
- DataArrayIdType *connITrg=DataArrayIdType::New();
- const mcIdType connITrgData[2]={0,44};
- connITrg->useArray(connITrgData,false,DeallocType::CPP_DEALLOC,2,1);
- MEDCouplingUMesh *trgMesh=MEDCouplingUMesh::New("target",3);
- trgMesh->setCoords(coordsTrg);
- trgMesh->setConnectivity(connTrg,connITrg,true);
- coordsTrg->decrRef(); connTrg->decrRef(); connITrg->decrRef();
- // Go !
- const double valExpected(20.957814771583468);
- MEDCouplingRemapper remapper;
- remapper.setPrecision(1e-12);
- remapper.setIntersectionType(INTERP_KERNEL::Triangulation);
- CPPUNIT_ASSERT_EQUAL(1,remapper.prepare(srcMesh,trgMesh,"P0P0"));
- std::vector<std::map<mcIdType,double> > matrx(remapper.getCrudeMatrix());
- CPPUNIT_ASSERT_EQUAL(1,(int)matrx.size());
- CPPUNIT_ASSERT_EQUAL(1,(int)matrx[0].size());
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valExpected,matrx[0][0],1e-13);
- //
- srcMesh->decrRef(); trgMesh->decrRef();
+  const double coordsTrgData[36]={-2,1.1547005383792521,264.85199999999998,-2,0.57735026918962618,264.85199999999998,-2.5,0.2886751345948132,264.85199999999998,-2.5,1.443375672974065,264.85199999999998,-3.0000000000000004,1.1547005383792526,264.85199999999998,-3.0000000000000004,0.57735026918962662,264.85199999999998,-2,1.1547005383792521,289.05200000000002,-2,0.57735026918962618,289.05200000000002,-2.5,0.2886751345948132,289.05200000000002,-2.5,1.443375672974065,289.05200000000002,-3.0000000000000004,1.1547005383792526,289.05200000000002,-3.0000000000000004,0.57735026918962662,289.05200000000002};
 coordsTrg->useArray(coordsTrgData,false,DeallocType::CPP_DEALLOC,12,3);
 DataArrayIdType *connTrg=DataArrayIdType::New();
 const mcIdType connTrgData[44]={31,0,1,2,5,4,3,-1,7,6,9,10,11,8,-1,3,9,6,0,-1,4,10,9,3,-1,5,11,10,4,-1,2,8,11,5,-1,1,7,8,2,-1,0,6,7,1};
 connTrg->useArray(connTrgData,false,DeallocType::CPP_DEALLOC,44,1);
 DataArrayIdType *connITrg=DataArrayIdType::New();
 const mcIdType connITrgData[2]={0,44};
 connITrg->useArray(connITrgData,false,DeallocType::CPP_DEALLOC,2,1);
 MEDCouplingUMesh *trgMesh=MEDCouplingUMesh::New("target",3);
 trgMesh->setCoords(coordsTrg);
 trgMesh->setConnectivity(connTrg,connITrg,true);
 coordsTrg->decrRef(); connTrg->decrRef(); connITrg->decrRef();
 // Go !
 const double valExpected(20.957814771583468);
 MEDCouplingRemapper remapper;
 remapper.setPrecision(1e-12);
 remapper.setIntersectionType(INTERP_KERNEL::Triangulation);
 CPPUNIT_ASSERT_EQUAL(1,remapper.prepare(srcMesh,trgMesh,"P0P0"));
 std::vector<std::map<mcIdType,double> > matrx(remapper.getCrudeMatrix());
 CPPUNIT_ASSERT_EQUAL(1,(int)matrx.size());
 CPPUNIT_ASSERT_EQUAL(1,(int)matrx[0].size());
 CPPUNIT_ASSERT_DOUBLES_EQUAL(valExpected,matrx[0][0],1e-13);
 //
 srcMesh->decrRef(); trgMesh->decrRef();
 }
 
index 9267c66210577ddcb386c7f49a2d210bb83024ac..bc904c487909e0b140b0aaad476b945785bbd1fb 100644 (file)
@@ -1475,11 +1475,10 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
           mesh->setCoords(myCoords);
           myCoords->decrRef();
           paramesh=new ParaMESH(mesh,*target_group,targetMeshName);
-          DataArrayIdType *da=DataArrayIdType::New();
-          const mcIdType globalNumberingP2[5]={0,1,2,3,4};
-          da->useArray(globalNumberingP2,false,DeallocType::CPP_DEALLOC,5,1);
+          std::vector<mcIdType> globalNumberingP2 = {0,1,2,3,4};
+          MCAuto<DataArrayIdType> da=DataArrayIdType::New(); da->alloc(5,1);
+          std::copy(globalNumberingP2.begin(), globalNumberingP2.end(), da->rwBegin());
           paramesh->setNodeGlobal(da);
-          da->decrRef();
         }
       if(rank==3)
         {
@@ -1496,11 +1495,10 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
           mesh->setCoords(myCoords);
           myCoords->decrRef();
           paramesh=new ParaMESH(mesh,*target_group,targetMeshName);
-          DataArrayIdType *da=DataArrayIdType::New();
-          const mcIdType globalNumberingP3[3]={4,2,5};
-          da->useArray(globalNumberingP3,false,DeallocType::CPP_DEALLOC,3,1);
+          std::vector<mcIdType> globalNumberingP3 = {4,2,5};
+          MCAuto<DataArrayIdType> da=DataArrayIdType::New(); da->alloc(3,1);
+          std::copy(globalNumberingP3.begin(), globalNumberingP3.end(), da->rwBegin());
           paramesh->setNodeGlobal(da);
-          da->decrRef();
         }
       if(rank==4)
         {
@@ -1518,11 +1516,10 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
           mesh->setCoords(myCoords);
           myCoords->decrRef();
           paramesh=new ParaMESH(mesh,*target_group,targetMeshName);
-          DataArrayIdType *da=DataArrayIdType::New();
-          const mcIdType globalNumberingP4[6]={3,6,7,4,8,5};
-          da->useArray(globalNumberingP4,false,DeallocType::CPP_DEALLOC,6,1);
+          std::vector<mcIdType> globalNumberingP4 = {3,6,7,4,8,5};
+          MCAuto<DataArrayIdType> da=DataArrayIdType::New(); da->alloc(6,1);
+          std::copy(globalNumberingP4.begin(), globalNumberingP4.end(), da->rwBegin());
           paramesh->setNodeGlobal(da);
-          da->decrRef();
         }
       MEDCoupling::ComponentTopology comptopo;
       parafieldP0 = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);