[cig-commits] r4843 - in long/3D/Gale/trunk/src/StGermain: . Base/Container/src

walter at geodynamics.org walter at geodynamics.org
Wed Oct 11 13:46:51 PDT 2006


Author: walter
Date: 2006-10-11 13:46:51 -0700 (Wed, 11 Oct 2006)
New Revision: 4843

Modified:
   long/3D/Gale/trunk/src/StGermain/
   long/3D/Gale/trunk/src/StGermain/Base/Container/src/RangeSet.c
Log:
 r2900 at earth:  boo | 2006-10-11 13:42:36 -0700
  r2816 at earth (orig r3804):  LukeHodkinson | 2006-09-26 20:18:47 -0700
  Very small sets of indices were causing issues
  in the range set; fixed.
  
 



Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
   - 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2899
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3803
   + 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2900
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3804

Modified: long/3D/Gale/trunk/src/StGermain/Base/Container/src/RangeSet.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Container/src/RangeSet.c	2006-10-11 20:46:49 UTC (rev 4842)
+++ long/3D/Gale/trunk/src/StGermain/Base/Container/src/RangeSet.c	2006-10-11 20:46:51 UTC (rev 4843)
@@ -158,26 +158,33 @@
 		range = self->ranges + self->nRanges - 1;
 
 		range->begin = tmpInds[curInd++];
-		while( tmpInds[curInd] == tmpInds[curInd - 1] ) {
+		while( curInd < nInds && tmpInds[curInd] == tmpInds[curInd - 1] ) {
 			curInd++;
 			self->nInds--;
 		}
 
+		if( curInd == nInds ) {
+			range->end = range->begin + 1;
+			range->step = 1;
+			break;
+		}
+
 		range->end = tmpInds[curInd++];
-		while( tmpInds[curInd] == range->end ) {
+		while( curInd < nInds && tmpInds[curInd] == range->end ) {
 			curInd++;
 			self->nInds--;
 		}
 
 		range->step = range->end - range->begin;
 
-		while( tmpInds[curInd] - range->end == range->step ) {
+		while( curInd < nInds && tmpInds[curInd] - range->end == range->step ) {
 			range->end = tmpInds[curInd++];
 			while( tmpInds[curInd] == range->end ) {
 				curInd++;
 				self->nInds--;
 			}
 		}
+
 		range->end++;
 	}
 



More information about the cig-commits mailing list