aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--e-util/ChangeLog1
-rw-r--r--e-util/e-memory.c10
-rw-r--r--e-util/e-memory.h1
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);