From fc24c8a34838e594439fbaf28e583b93522207e7 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Fri, 21 Apr 2023 10:53:23 -0400 Subject: [PATCH] r1169: improved kexpand compatibility --- kalloc.h | 9 +++++++-- minimap.h | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/kalloc.h b/kalloc.h index 8903fe4..4378672 100644 --- a/kalloc.h +++ b/kalloc.h @@ -31,13 +31,18 @@ void km_stat_print(const void *km); #define Kcalloc(km, type, cnt) ((type*)kcalloc((km), (cnt), sizeof(type))) #define Krealloc(km, type, ptr, cnt) ((type*)krealloc((km), (ptr), (cnt) * sizeof(type))) +#define Kexpand(km, type, a, m) do { \ + (m) = (m) >= 4? (m) + ((m)>>1) : 16; \ + (a) = Krealloc(km, type, (a), (m)); \ + } while (0) + #define KMALLOC(km, ptr, len) ((ptr) = (__typeof__(ptr))kmalloc((km), (len) * sizeof(*(ptr)))) #define KCALLOC(km, ptr, len) ((ptr) = (__typeof__(ptr))kcalloc((km), (len), sizeof(*(ptr)))) #define KREALLOC(km, ptr, len) ((ptr) = (__typeof__(ptr))krealloc((km), (ptr), (len) * sizeof(*(ptr)))) #define KEXPAND(km, a, m) do { \ (m) = (m) >= 4? (m) + ((m)>>1) : 16; \ - a = krealloc((km), (a), (m) * sizeof(a)) ; \ + KREALLOC((km), (a), (m)); \ } while (0) #ifndef klib_unused @@ -72,7 +77,7 @@ void km_stat_print(const void *km); } \ SCOPE void kmp_free_##name(kmp_##name##_t *mp, kmptype_t *p) { \ --mp->cnt; \ - if (mp->n == mp->max) KEXPAND(mp->km, mp->buf, mp->max); \ + if (mp->n == mp->max) Kexpand(mp->km, kmptype_t*, mp->buf, mp->max); \ mp->buf[mp->n++] = p; \ } diff --git a/minimap.h b/minimap.h index ec07b3d..34c6c54 100644 --- a/minimap.h +++ b/minimap.h @@ -5,7 +5,7 @@ #include #include -#define MM_VERSION "2.24-r1166-dirty" +#define MM_VERSION "2.24-r1169-dirty" #define MM_F_NO_DIAG (0x001LL) // no exact diagonal hit #define MM_F_NO_DUAL (0x002LL) // skip pairs where query name is lexicographically larger than target name