1359d9856e982d83be761f3501bd6a87c046dee6 angie Mon Apr 15 15:56:56 2013 -0700 Added determination of data type by asObject comparison instead ofkludges like special annoRowType or checking a few column names. refs #6152 diff --git src/lib/annoRow.c src/lib/annoRow.c index 920e5bc..0dc86ed 100644 --- src/lib/annoRow.c +++ src/lib/annoRow.c @@ -30,31 +30,31 @@ row->chrom = lmCloneString(lm, chrom); row->start = start; row->end = end; row->data = lmCloneMem(lm, values, (end - start) * sizeof(values[0])); row->rightJoinFail = rightJoinFail; return row; } struct annoRow *annoRowClone(struct annoRow *rowIn, enum annoRowType rowType, int numCols, struct lm *lm) /* Allocate & return a single annoRow cloned from rowIn. If rowIn is NULL, return NULL. * If type is arWig, numCols is ignored. */ { if (rowIn == NULL) return NULL; -if (rowType == arWords || rowType == arVcf) +if (rowType == arWords) return annoRowFromStringArray(rowIn->chrom, rowIn->start, rowIn->end, rowIn->rightJoinFail, rowIn->data, numCols, lm); else if (rowType == arWig) return annoRowWigNew(rowIn->chrom, rowIn->start, rowIn->end, rowIn->rightJoinFail, (float *)rowIn->data, lm); else errAbort("annoRowClone: unrecognized type %d", rowType); return NULL; } int annoRowCmp(const void *va, const void *vb) /* Compare two annoRows' {chrom, start, end}. */ { struct annoRow *rowA = *((struct annoRow **)va); struct annoRow *rowB = *((struct annoRow **)vb);