src/hg/hgTables/wiggle.c 1.72
1.72 2009/04/10 20:04:30 tdreszer
Fix many instances of using composite tdb when subtrack tdb is needed
Index: src/hg/hgTables/wiggle.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTables/wiggle.c,v
retrieving revision 1.71
retrieving revision 1.72
diff -b -B -U 4 -r1.71 -r1.72
--- src/hg/hgTables/wiggle.c 17 Mar 2009 04:28:39 -0000 1.71
+++ src/hg/hgTables/wiggle.c 10 Apr 2009 20:04:30 -0000 1.72
@@ -467,38 +467,8 @@
dataVectorFree(&dv);
return resultCount;
}
-
-static struct trackDb *trackDbWithWiggleSettings(char *table)
-/* Get trackDb for a table in the database -- or if it has a parent/composite
- * track, then return that because it contains the wiggle settings. */
-{
-if (curTrack != NULL)
- {
- if (sameString(table, curTrack->tableName))
- return curTrack;
- else if (curTrack->subtracks)
- {
- struct trackDb *sTdb = NULL;
- for (sTdb = curTrack->subtracks; sTdb != NULL; sTdb = sTdb->next)
- {
- if (sameString(table, sTdb->tableName))
- return curTrack;
- }
- }
- }
-/* OK, table is not curTrack nor any of its subtracks -- look it up (and its
- * parent if there is one): */
- {
- struct trackDb *tdb = hTrackDbForTrack(database, table);
- struct trackDb *cTdb = hCompositeTrackDbForSubtrack(database, tdb);
- if (cTdb != NULL)
- return cTdb;
- return tdb;
- }
-}
-
static int wigOutRegion(char *table, struct sqlConnection *conn,
struct region *region, int maxOut, enum wigOutputType wigOutType,
struct wigAsciiData **data, int spanConstraint)
/* Write out wig data in region. Write up to maxOut elements.
@@ -550,9 +520,9 @@
wds->setSpanConstraint(wds,spanConstraint);
else
{
struct sqlConnection *trashConn = hAllocConn(CUSTOM_TRASH);
- struct trackDb *tdb = trackDbWithWiggleSettings(table);
+ struct trackDb *tdb = findTdbForTable(database, curTrack, table);
unsigned span = minSpan(trashConn, splitTableOrFileName,
region->chrom, region->start, region->end, cart, tdb);
wds->setSpanConstraint(wds, span);
hFreeConn(&trashConn);
@@ -573,9 +543,9 @@
{
/* XXX TBD, watch for a span limit coming in as an SQL filter */
if (intersectBedList)
{
- struct trackDb *tdb = trackDbWithWiggleSettings(table);
+ struct trackDb *tdb = findTdbForTable(database, curTrack, table);
unsigned span;
span = minSpan(conn, splitTableOrFileName, region->chrom,
region->start, region->end, cart, tdb);
wds->setSpanConstraint(wds, span);
@@ -870,9 +840,9 @@
if (ct->dbTrack)
{
unsigned span = 0;
struct sqlConnection *trashConn = hAllocConn(CUSTOM_TRASH);
- struct trackDb *tdb = trackDbWithWiggleSettings(table);
+ struct trackDb *tdb = findTdbForTable(database, curTrack, table);
valuesMatched = getWigglePossibleIntersection(wds, region,
CUSTOM_TRASH, table2, &intersectBedList,
splitTableOrFileName, operations);
span = minSpan(trashConn, splitTableOrFileName, region->chrom,
@@ -892,9 +862,9 @@
errAbort( "getWiggleAsBed: NULL conn given for database table");
if (hFindSplitTable(database, region->chrom, table, splitTableOrFileName, &hasBin))
{
- struct trackDb *tdb = trackDbWithWiggleSettings(table);
+ struct trackDb *tdb = findTdbForTable(database, curTrack, table);
unsigned span = 0;
/* XXX TBD, watch for a span limit coming in as an SQL filter */
span = minSpan(conn, splitTableOrFileName, region->chrom,
@@ -1053,9 +1023,9 @@
{
if (ct->dbTrack)
{
struct sqlConnection *trashConn = hAllocConn(CUSTOM_TRASH);
- struct trackDb *tdb = trackDbWithWiggleSettings(table);
+ struct trackDb *tdb = findTdbForTable(database, curTrack, table);
span = minSpan(trashConn, splitTableOrFileName, region->chrom,
region->start, region->end, cart, tdb);
wds->setSpanConstraint(wds, span);
valuesMatched = getWigglePossibleIntersection(wds, region,