]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Prepare int64 management - example 2
authorAnthony Geay <anthony.geay@edf.fr>
Thu, 31 Jan 2019 13:43:46 +0000 (14:43 +0100)
committerAnthony Geay <anthony.geay@edf.fr>
Thu, 31 Jan 2019 13:43:46 +0000 (14:43 +0100)
src/MEDCoupling/MCType.hxx
src/MEDCoupling/MEDCouplingMemArray.cxx
src/MEDCoupling/MEDCouplingMemArray.hxx

index ad07645918089bbd3e20f03d102f2eb1bcf12aba..2bb14a2f538596c689647d2642da3e7f21afb5e3 100644 (file)
@@ -28,6 +28,8 @@ namespace MEDCoupling
   using Int64 = std::int64_t;
   using Int32 = std::int32_t;
   using mcIdType = std::int32_t;
+
+  inline mcIdType ToIdType(std::size_t val) { return mcIdType(val); }
 }
 
 #define DataArrayInt DataArrayInt32
index 6ff8d9cf55029566fa76c6d4ec15123109e1fe75..714f8d34fcc52138d724e72bf447b43f52ae83df 100644 (file)
@@ -4450,17 +4450,17 @@ DataArrayIntIterator *DataArrayInt::iterator()
  *  \throw If \a this->getNumberOfComponents() != 1.
  *  \sa DataArrayInt::findIdsEqualTuple
  */
-DataArrayInt *DataArrayInt::findIdsEqual(int val) const
+DataArrayIdType *DataArrayInt::findIdsEqual(int val) const
 {
   checkAllocated();
   if(getNumberOfComponents()!=1)
     throw INTERP_KERNEL::Exception("DataArrayInt::findIdsEqual : the array must have only one component, you can call 'rearrange' method before !");
   const int *cptr(getConstPointer());
-  MCAuto<DataArrayInt> ret(DataArrayInt::New()); ret->alloc(0,1);
+  MCAuto<DataArrayIdType> ret(DataArrayIdType::New()); ret->alloc(0,1);
   std::size_t nbOfTuples(getNumberOfTuples());
   for(std::size_t i=0;i<nbOfTuples;i++,cptr++)
     if(*cptr==val)
-      ret->pushBackSilent(i);
+      ret->pushBackSilent(ToIdType(i));
   return ret.retn();
 }
 
index 56e0e9329a13c8e1e7a8072049c340ad6fcb64f6..f1a8fe036ad0206efdb71db58ab932ca87704850 100644 (file)
@@ -599,7 +599,7 @@ namespace MEDCoupling
     MEDCOUPLING_EXPORT bool hasUniqueValues() const;
     MEDCOUPLING_EXPORT void setSelectedComponents(const DataArrayInt32 *a, const std::vector<int>& compoIds);
     MEDCOUPLING_EXPORT DataArrayInt32Iterator *iterator();
-    MEDCOUPLING_EXPORT DataArrayInt32 *findIdsEqual(int val) const;
+    MEDCOUPLING_EXPORT DataArrayIdType *findIdsEqual(int val) const;
     MEDCOUPLING_EXPORT DataArrayInt32 *findIdsNotEqual(int val) const;
     MEDCOUPLING_EXPORT DataArrayInt32 *findIdsEqualList(const int *valsBg, const int *valsEnd) const;
     MEDCOUPLING_EXPORT DataArrayInt32 *findIdsNotEqualList(const int *valsBg, const int *valsEnd) const;