From c18ba0d59383e9bc2cf7d36c227617b03faeab25 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Sat, 5 Sep 2009 20:12:04 +0000 Subject: [PATCH] * samtools-0.1.6-2 (r457) * get rid of three assert() in bam_sort.c --- bam_sort.c | 23 ++++++++++++++++++++--- bamtk.c | 2 +- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/bam_sort.c b/bam_sort.c index a2d3d09..2259888 100644 --- a/bam_sort.c +++ b/bam_sort.c @@ -93,7 +93,15 @@ void bam_merge_core(int by_qname, const char *out, const char *headers, int n, c for (i = 0; i != n; ++i) { heap1_t *h; bam_header_t *hin; - assert(fp[i] = bam_open(fn[i], "r")); + fp[i] = bam_open(fn[i], "r"); + if (fp[i] == 0) { + int j; + fprintf(stderr, "[bam_merge_core] fail to open file %s\n", fn[i]); + for (j = 0; j < i; ++j) bam_close(fp[j]); + free(fp); free(heap); + // FIXME: possible memory leak + return; + } hin = bam_header_read(fp[i]); if (i == 0) { // the first SAM hout = hin; @@ -202,7 +210,13 @@ static void sort_blocks(int n, int k, bam1_p *buf, const char *prefix, const bam name = (char*)calloc(strlen(prefix) + 20, 1); if (n >= 0) sprintf(name, "%s.%.4d.bam", prefix, n); else sprintf(name, "%s.bam", prefix); - assert(fp = bam_open(name, "w")); + fp = bam_open(name, "w"); + if (fp == 0) { + fprintf(stderr, "[sort_blocks] fail to create file %s.\n", name); + free(name); + // FIXME: possible memory leak + return; + } free(name); bam_header_write(fp, h); for (i = 0; i < k; ++i) @@ -235,7 +249,10 @@ void bam_sort_core(int is_by_qname, const char *fn, const char *prefix, size_t m g_is_by_qname = is_by_qname; n = k = 0; mem = 0; fp = strcmp(fn, "-")? bam_open(fn, "r") : bam_dopen(fileno(stdin), "r"); - assert(fp); + if (fp == 0) { + fprintf(stderr, "[bam_sort_core] fail to open file %s\n", fn); + return; + } header = bam_header_read(fp); buf = (bam1_t**)calloc(max_mem / BAM_CORE_SIZE, sizeof(bam1_t*)); // write sub files diff --git a/bamtk.c b/bamtk.c index ea66672..8db8bcb 100644 --- a/bamtk.c +++ b/bamtk.c @@ -9,7 +9,7 @@ #endif #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.1.6 (r453)" +#define PACKAGE_VERSION "0.1.6-2 (r457)" #endif int bam_taf2baf(int argc, char *argv[]); -- 2.39.2