r1169: improved kexpand compatibility
This commit is contained in:
parent
e68d868806
commit
fc24c8a348
9
kalloc.h
9
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 Kcalloc(km, type, cnt) ((type*)kcalloc((km), (cnt), sizeof(type)))
|
||||||
#define Krealloc(km, type, ptr, cnt) ((type*)krealloc((km), (ptr), (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 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 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 KREALLOC(km, ptr, len) ((ptr) = (__typeof__(ptr))krealloc((km), (ptr), (len) * sizeof(*(ptr))))
|
||||||
|
|
||||||
#define KEXPAND(km, a, m) do { \
|
#define KEXPAND(km, a, m) do { \
|
||||||
(m) = (m) >= 4? (m) + ((m)>>1) : 16; \
|
(m) = (m) >= 4? (m) + ((m)>>1) : 16; \
|
||||||
a = krealloc((km), (a), (m) * sizeof(a)) ; \
|
KREALLOC((km), (a), (m)); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#ifndef klib_unused
|
#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) { \
|
SCOPE void kmp_free_##name(kmp_##name##_t *mp, kmptype_t *p) { \
|
||||||
--mp->cnt; \
|
--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; \
|
mp->buf[mp->n++] = p; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#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_DIAG (0x001LL) // no exact diagonal hit
|
||||||
#define MM_F_NO_DUAL (0x002LL) // skip pairs where query name is lexicographically larger than target name
|
#define MM_F_NO_DUAL (0x002LL) // skip pairs where query name is lexicographically larger than target name
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue