From 962ad175aee634274b408ead38b13e6bc90e2fe7 Mon Sep 17 00:00:00 2001 From: lemon Date: Sat, 17 Jun 2023 23:26:45 +0200 Subject: basic ELF output --- mem.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'mem.c') diff --git a/mem.c b/mem.c index 4817b7d..ad2082d 100644 --- a/mem.c +++ b/mem.c @@ -50,7 +50,7 @@ vpush_(void **p, int *pcap, uint *pn, uint siz) *pcap = -cap; } else if (*pn == -*pcap) { /* dyn buf */ *p = xrealloc(*p, -(*pcap *= 2) * siz); - } + } else return; assert(-(volatile int)*pcap > *pn && "overflow"); } @@ -221,7 +221,7 @@ pmap_init_(struct pmapbase *m, void **v, uint vsiz, uint N) m->N = N; } -int pmap_get_(struct pmapbase *m, void *k) +int pmap_get_(struct pmapbase *m, const void *k) { assert(k && "null key"); if (!m->N) return -1; @@ -239,7 +239,7 @@ pmap_rehash(struct pmapbase *m, void **v, uint vsiz) int i, j; void *k; void *newv; - uint N2 = m->N << 1, + uint N2 = m->N ? m->N << 1 : 16, sizk = N2*sizeof*m->k, sizv = N2*vsiz; @@ -265,7 +265,7 @@ pmap_rehash(struct pmapbase *m, void **v, uint vsiz) m->N = N2; } -int pmap_set_(struct pmapbase *m, void **v, uint vsiz, void *k) +int pmap_set_(struct pmapbase *m, void **v, uint vsiz, const void *k) { assert(k && "null key"); if (m->n >= m->N >> 1) { @@ -277,7 +277,7 @@ int pmap_set_(struct pmapbase *m, void **v, uint vsiz, void *k) if (m->k[i] == k) return i; if (!m->k[i]) { - m->k[i] = k; + m->k[i] = (void *)k; ++m->n; return i; } -- cgit v1.2.3