diff options
Diffstat (limited to 'e-util')
-rw-r--r-- | e-util/ChangeLog | 1 | ||||
-rw-r--r-- | e-util/e-memory.c | 10 | ||||
-rw-r--r-- | e-util/e-memory.h | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/e-util/ChangeLog b/e-util/ChangeLog index 2fbb4631a2..d370ef880e 100644 --- a/e-util/ChangeLog +++ b/e-util/ChangeLog @@ -2,6 +2,7 @@ * e-memory.c (e_memchunk_alloc0): New function to allocate a zero'd out chunk. + (e_mempool_strdup): New function to strdup into a mempool. 2000-11-20 Not Zed <NotZed@HelixCode.com> diff --git a/e-util/e-memory.c b/e-util/e-memory.c index 2a3cd55771..37ec181ce9 100644 --- a/e-util/e-memory.c +++ b/e-util/e-memory.c @@ -427,6 +427,16 @@ void *e_mempool_alloc(MemPool *pool, int size) } } +char *e_mempool_strdup(EMemPool *pool, const char *str) +{ + char *out; + + out = e_mempool_alloc(pool, strlen(str)); + strcpy(out, str); + + return out; +} + /** * e_mempool_flush: * @pool: diff --git a/e-util/e-memory.h b/e-util/e-memory.h index 3f1f2f0f4d..378c485530 100644 --- a/e-util/e-memory.h +++ b/e-util/e-memory.h @@ -46,6 +46,7 @@ typedef enum { EMemPool *e_mempool_new(int blocksize, int threshold, EMemPoolFlags flags); void *e_mempool_alloc(EMemPool *pool, int size); +char *e_mempool_strdup(EMemPool *pool, const char *str); void e_mempool_flush(EMemPool *pool, int freeall); void e_mempool_destroy(EMemPool *pool); |