[MOAB-dev] r1287 - MOAB/branches/ref_counting

kraftche at mcs.anl.gov kraftche at mcs.anl.gov
Tue Sep 25 11:59:47 CDT 2007


Author: kraftche
Date: 2007-09-25 11:59:46 -0500 (Tue, 25 Sep 2007)
New Revision: 1287

Added:
   MOAB/branches/ref_counting/README.RefCounting
Modified:
   MOAB/branches/ref_counting/AEntityFactory.cpp
Log:
remaining reference counting changes

Modified: MOAB/branches/ref_counting/AEntityFactory.cpp
===================================================================
--- MOAB/branches/ref_counting/AEntityFactory.cpp	2007-09-25 16:56:03 UTC (rev 1286)
+++ MOAB/branches/ref_counting/AEntityFactory.cpp	2007-09-25 16:59:46 UTC (rev 1287)
@@ -514,8 +514,8 @@
 {
   MBErrorCode result;
 
-  //if (TYPE_FROM_HANDLE(base_entity) == MBENTITYSET) 
-  //  return thisMB->clear_meshset(&base_entity, 1);
+  if (TYPE_FROM_HANDLE(base_entity) == MBENTITYSET) 
+    return thisMB->clear_meshset(&base_entity, 1);
 
     // clean out explicit adjacencies to this entity first
   for (int dim = 1; dim < thisMB->dimension_from_handle(base_entity); dim++) {

Added: MOAB/branches/ref_counting/README.RefCounting
===================================================================
--- MOAB/branches/ref_counting/README.RefCounting	                        (rev 0)
+++ MOAB/branches/ref_counting/README.RefCounting	2007-09-25 16:59:46 UTC (rev 1287)
@@ -0,0 +1,18 @@
+This branch replaces the vector<bool> of valid/invalid flags in entity 
+sequences with a vector<unsigned> of reference counts.  A value of zero
+for an entity signifies a hole in the sequence.  A valid entity has a 
+reference count of at least 1, signifying that it is referenced by it's 
+owning EntitySequence.  
+
+This branch contains code to update reference counts for a) entities used in 
+connectivity lists, b) entities contained in sets, c) sets referenced by
+parent/child links, d) downward adjacencies, and e) entities referenced in
+handle-type tag data.  Additionally, this branch contains enhancements to 
+several existing algorithms that benefit from the reference count, including 
+entity deletion, higher-order conversion, merging, etc.
+
+MBTest fails due to one or more bugs while deleting entity sets.  The high-level
+deletion code decrmenents reference counts for contained and parent/child 
+entities.  However, as part of cleaning up adjacencies, updating bi-directional 
+parent/child links, etc. the low-level deletion code clears the set contents, 
+etc.  This results in the reference count to be decremented a *second* time.  




More information about the moab-dev mailing list