X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bam_aux.c;h=f36bc2351ee0c74ad87f877f7a3797e3281461d8;hb=63e8f525a5fd57be4c3471739a3996016e0c25f9;hp=137f9afffdd016347a48cd85df7a6c0cfd2cebf0;hpb=14ef69cb3a76515204e81ef7f276312c1b6c7a07;p=samtools.git diff --git a/bam_aux.c b/bam_aux.c index 137f9af..f36bc23 100644 --- a/bam_aux.c +++ b/bam_aux.c @@ -169,7 +169,9 @@ int bam_strmap_put(void *rg2lib, const char *rg, const char *lib) int ret; khint_t k; khash_t(r2l) *h = (khash_t(r2l)*)rg2lib; - char *key = strdup(rg); + char *key; + if (h == 0) return 1; + key = strdup(rg); k = kh_put(r2l, h, key, &ret); if (ret) kh_val(h, k) = strdup(lib); else { @@ -183,6 +185,7 @@ const char *bam_strmap_get(const void *rg2lib, const char *rg) { const khash_t(r2l) *h = (const khash_t(r2l)*)rg2lib; khint_t k; + if (h == 0) return 0; k = kh_get(r2l, h, rg); if (k != kh_end(h)) return (const char*)kh_val(h, k); else return 0; @@ -191,9 +194,11 @@ const char *bam_strmap_get(const void *rg2lib, const char *rg) void *bam_strmap_dup(const void *rg2lib) { const khash_t(r2l) *h = (const khash_t(r2l)*)rg2lib; - khash_t(r2l) *g = kh_init(r2l); + khash_t(r2l) *g; khint_t k, l; int ret; + if (h == 0) return 0; + g = kh_init(r2l); for (k = kh_begin(h); k < kh_end(h); ++k) { if (kh_exist(h, k)) { char *key = strdup(kh_key(h, k));