4898058b5cc05ab0d70d67b6f11402ff71807465 angie Wed Sep 11 14:37:18 2013 -0700 Adding bed4{New,Free,FreeList}. diff --git src/lib/basicBed.c src/lib/basicBed.c index 2cbb985..966af38 100644 --- src/lib/basicBed.c +++ src/lib/basicBed.c @@ -1698,15 +1698,52 @@ bed3Free(&el); } *pList = NULL; } long long bed3TotalSize(struct bed3 *bedList) /* Return sum of chromEnd-chromStart. */ { long long sum = 0; struct bed3 *bed; for (bed = bedList; bed != NULL; bed = bed->next) sum += bed->chromEnd - bed->chromStart; return sum; } +struct bed4 *bed4New(char *chrom, int start, int end, char *name) +/* Make new bed4. */ +{ +struct bed4 *bed; +AllocVar(bed); +bed->chrom = cloneString(chrom); +bed->chromStart = start; +bed->chromEnd = end; +bed->name = cloneString(name); +return bed; +} + +void bed4Free(struct bed4 **pBed) +/* Free up bed4 */ +{ +struct bed4 *bed = *pBed; +if (bed != NULL) + { + freeMem(bed->chrom); + freeMem(bed->name); + freez(pBed); + } +} + +void bed4FreeList(struct bed4 **pList) +/* Free a list of dynamically allocated bed4's */ +{ +struct bed4 *el, *next; + +for (el = *pList; el != NULL; el = next) + { + next = el->next; + bed4Free(&el); + } +*pList = NULL; +} +