[MOAB-dev] r4781 - in MOAB/trunk: itaps/imesh src src/io src/parallel src/parallel/moab tools/refiner

tautges at mcs.anl.gov tautges at mcs.anl.gov
Wed Apr 27 19:36:20 CDT 2011


Author: tautges
Date: 2011-04-27 19:36:18 -0500 (Wed, 27 Apr 2011)
New Revision: 4781

Modified:
   MOAB/trunk/itaps/imesh/iMesh_MOAB.cpp
   MOAB/trunk/src/BSPTreePoly.cpp
   MOAB/trunk/src/Core.cpp
   MOAB/trunk/src/DualTool.cpp
   MOAB/trunk/src/Matrix3.hpp
   MOAB/trunk/src/io/WriteHDF5.cpp
   MOAB/trunk/src/parallel/ParallelMergeMesh.cpp
   MOAB/trunk/src/parallel/WriteHDF5Parallel.cpp
   MOAB/trunk/src/parallel/WriteHDF5Parallel.hpp
   MOAB/trunk/src/parallel/moab/ProcConfig.hpp
   MOAB/trunk/tools/refiner/RefinerTagManager.cpp
   MOAB/trunk/tools/refiner/test_mesh_refiner.cpp
Log:
- remove use of USE_MPI from public API headers, so that MOAB applications
  aren't required to define this; in most cases, this won't force any changes
  in applications, except for those including ParallelComm.hpp or 
  ProcConfig.hpp, which will have to be compiled with an mpi-enabled compiler
  or with -I options that allow them to resolve mpi.h.

- adding an error check to Interface::load_file, where if a non-NULL entity 
  set pointer is passed in as the set handle pointer should point to a valid
  entity set

- adding various checks for error conditions indicated from a static analysis
  of MOAB code from LLNL

- fixed a few bugs in the refiner that were preventing that test from
  passing the unit test

Passes make check in parallel and serial.



Modified: MOAB/trunk/itaps/imesh/iMesh_MOAB.cpp
===================================================================
--- MOAB/trunk/itaps/imesh/iMesh_MOAB.cpp	2011-04-26 22:45:44 UTC (rev 4780)
+++ MOAB/trunk/itaps/imesh/iMesh_MOAB.cpp	2011-04-28 00:36:18 UTC (rev 4781)
@@ -1464,6 +1464,9 @@
                           /*out*/ int* status_size, int *err)
   {
       // for now, throw an error if lower order entity handles aren't vertices
+    if (iMesh_POINT > new_entity_topology || iMesh_SEPTAHEDRON < new_entity_topology) {
+      ERROR(iBase_INVALID_ARGUMENT, "iMesh_createEntArr: invalid topology.");
+    }
     EntityType this_type = mb_topology_table[new_entity_topology];
     int num_ents = 0, num_verts;
     const EntityHandle *lower_ents;

Modified: MOAB/trunk/src/BSPTreePoly.cpp
===================================================================
--- MOAB/trunk/src/BSPTreePoly.cpp	2011-04-26 22:45:44 UTC (rev 4780)
+++ MOAB/trunk/src/BSPTreePoly.cpp	2011-04-28 00:36:18 UTC (rev 4781)
@@ -668,6 +668,7 @@
       co_edge = co_edge->nextPtr;
     } while (co_edge && co_edge != face->usePtr);
   }
+  if (!edge_ptr) return false;
   
     // Constuct new face and first CoEdge
   faceList = new Face( faceList );

Modified: MOAB/trunk/src/Core.cpp
===================================================================
--- MOAB/trunk/src/Core.cpp	2011-04-26 22:45:44 UTC (rev 4780)
+++ MOAB/trunk/src/Core.cpp	2011-04-28 00:36:18 UTC (rev 4781)
@@ -459,6 +459,12 @@
   ErrorCode rval;
   ReaderIface::IDTag t = { set_tag_name, set_tag_vals, num_set_tag_vals };
   ReaderIface::SubsetList sl = { &t, 1, 0, 0 };
+
+  assert(!file_set || (*file_set && is_valid(*file_set)));
+  if (file_set && !*file_set) {
+    mError->set_last_error( "Non-NULL file set pointer should point to non-NULL set.\n" );
+    return MB_FAILURE;
+  }
   
     // if reading in parallel, call a different reader
   std::string parallel_opt;

Modified: MOAB/trunk/src/DualTool.cpp
===================================================================
--- MOAB/trunk/src/DualTool.cpp	2011-04-26 22:45:44 UTC (rev 4780)
+++ MOAB/trunk/src/DualTool.cpp	2011-04-28 00:36:18 UTC (rev 4781)
@@ -1946,6 +1946,7 @@


More information about the moab-dev mailing list