struct mempool *mp_new(uns);
void mp_delete(struct mempool *);
void mp_flush(struct mempool *);
-void *mp_alloc(struct mempool *, uns);
-void *mp_alloc_zero(struct mempool *, uns);
+void *mp_alloc(struct mempool *, uns) LIKE_MALLOC;
+void *mp_alloc_zero(struct mempool *, uns) LIKE_MALLOC;
-static inline void *mp_alloc_fast(struct mempool *p, uns l)
+static inline void * LIKE_MALLOC
+mp_alloc_fast(struct mempool *p, uns l)
{
byte *f = (void *) (((addr_int_t) p->free + POOL_ALIGN - 1) & ~(addr_int_t)(POOL_ALIGN - 1));
byte *ee = f + l;
return f;
}
-static inline void *mp_alloc_fast_noalign(struct mempool *p, uns l)
+static inline void * LIKE_MALLOC mp_alloc_fast_noalign(struct mempool *p, uns l)
{
byte *f = p->free;
byte *ee = f + l;
/* mempool-str.c */
-char *mp_strdup(struct mempool *, char *);
-void *mp_memdup(struct mempool *, void *, uns);
-char *mp_multicat(struct mempool *, ...);
-static inline char *
+char *mp_strdup(struct mempool *, char *) LIKE_MALLOC;
+void *mp_memdup(struct mempool *, void *, uns) LIKE_MALLOC;
+char *mp_multicat(struct mempool *, ...) LIKE_MALLOC SENTINEL_CHECK;
+static inline char * LIKE_MALLOC
mp_strcat(struct mempool *mp, char *x, char *y)
{
return mp_multicat(mp, x, y, NULL);
}
-char *mp_strjoin(struct mempool *p, char **a, uns n, uns sep);
+char *mp_strjoin(struct mempool *p, char **a, uns n, uns sep) LIKE_MALLOC;
/* mempool-fmt.c */
-char *mp_printf(struct mempool *p, char *fmt, ...) FORMAT_CHECK(printf,2,3);
-char *mp_vprintf(struct mempool *p, char *fmt, va_list args);
+char *mp_printf(struct mempool *p, char *fmt, ...) FORMAT_CHECK(printf,2,3) LIKE_MALLOC;
+char *mp_vprintf(struct mempool *p, char *fmt, va_list args) LIKE_MALLOC;
#endif