Index: /trunk/Ohana/src/libdvo/src/skyregion_gsc.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/skyregion_gsc.c	(revision 7781)
+++ /trunk/Ohana/src/libdvo/src/skyregion_gsc.c	(revision 7782)
@@ -3,5 +3,5 @@
 # define NDIV 4
 
-static int DecLines[] = {593, 584, 551, 530, 522, 465, 406, 362, 280, 198, 123, 24, 0,
+static int DecLines[] = {593, 584, 551, 530, 522, 465, 406, 362, 280, 198, 123, 25, 0,
 			 597, 578, 574, 577, 534, 499, 442, 376, 294, 212, 144, 48, 0};
 
Index: /trunk/Ohana/src/libohana/src/ohana_allocate.c
===================================================================
--- /trunk/Ohana/src/libohana/src/ohana_allocate.c	(revision 7781)
+++ /trunk/Ohana/src/libohana/src/ohana_allocate.c	(revision 7782)
@@ -39,4 +39,7 @@
 } Memlist;
 
+// XXX consider fixing the memory tracking model (list?)
+// static long *memsort;
+// static long *memhash;
 static Memlist *memlist = NULL;
 int Nmemlist = 0;
@@ -48,4 +51,6 @@
   NMEMLIST = 1000;
   OHANA_ALLOCATE (memlist, Memlist, NMEMLIST);
+  // OHANA_ALLOCATE (memsort, long, NMEMLIST);
+  // OHANA_ALLOCATE (memhash, long, NMEMLIST);
   NMEMBYTE = sizeof(size_t);
 }
@@ -86,4 +91,9 @@
   memlist[Nmemlist].size = size;
   memlist[Nmemlist].state = STATE_ALLOC;
+
+  // before each free, we sort this pair to speed up searching
+  // memsort[Nmemlist] = ptr;
+  // memhash[Nmemlist] = Nmemlist;
+
   Nmemlist ++;
   if (Nmemlist == NMEMLIST) {
@@ -143,4 +153,5 @@
 }
 
+// this is very slow.  should we speed this up by indexing on the ptr?
 void ohana_free (char *file, int line, void *in) {
 
@@ -199,4 +210,5 @@
 
   header = FALSE;
+  fprintf (stderr, "checking %d memory blocks\n", Nmemlist);
   for (i = 0; i < Nmemlist; i++) {
     if (memlist[i].state == STATE_EXTERNAL) continue;
