src/hg/lib/trackDbCustom.c 1.68

1.68 2009/07/20 20:53:46 tdreszer
Adding method for parent to abandon kids
Index: src/hg/lib/trackDbCustom.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/trackDbCustom.c,v
retrieving revision 1.67
retrieving revision 1.68
diff -b -B -U 4 -r1.67 -r1.68
--- src/hg/lib/trackDbCustom.c	17 Jul 2009 06:24:58 -0000	1.67
+++ src/hg/lib/trackDbCustom.c	20 Jul 2009 20:53:46 -0000	1.68
@@ -898,4 +898,28 @@
 metadataFree(&metadata);
 return setting;
 }
 
+int parentTdbAbandonTablelessChildren(char *db, struct trackDb *parentTdb)
+/* abandons tableless children from a container tdb, such as a composite
+   returns count of children that have been abandoned */
+{
+struct trackDb *goodKids = NULL;
+struct trackDb *childTdb;
+int badKids = 0;
+
+while((childTdb = slPopHead(&(parentTdb->subtracks))) != NULL)
+    {
+    if (hTableExists(db, childTdb->tableName))
+        slAddHead(&goodKids,childTdb);
+    else
+        {
+        badKids++;
+        trackDbFree(&childTdb);
+        }
+    }
+if(goodKids != NULL)
+    slReverse(&goodKids);
+parentTdb->subtracks = goodKids;
+return badKids;
+}
+