summaryrefslogtreecommitdiffstats
path: root/eglib/gmain.c
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2007-01-20 11:50:05 +0000
committerJohan Hedberg <johan.hedberg@nokia.com>2007-01-20 11:50:05 +0000
commit3fd70cad862febf8f1a60bd47576cb758d085958 (patch)
tree9c05c461b9799916690affcef548b9ca34b13e7c /eglib/gmain.c
parentacf8efe67b57a94494a5e2624d131e071445d917 (diff)
Implement memory allocation functions for eglib
Diffstat (limited to 'eglib/gmain.c')
-rw-r--r--eglib/gmain.c75
1 files changed, 75 insertions, 0 deletions
diff --git a/eglib/gmain.c b/eglib/gmain.c
index a3bf3760..bc1af91a 100644
--- a/eglib/gmain.c
+++ b/eglib/gmain.c
@@ -813,3 +813,78 @@ void g_slist_free(GSList *list)
free(l);
}
}
+
+/* Memory allocation functions */
+
+gpointer g_malloc(gulong n_bytes)
+{
+ gpointer mem;
+
+ if (!n_bytes)
+ return NULL;
+
+ mem = malloc((size_t) n_bytes);
+ if (!mem) {
+ fprintf(stderr, "g_malloc: failed to allocate %lu bytes",
+ n_bytes);
+ abort();
+ }
+
+ return mem;
+}
+
+gpointer g_malloc0(gulong n_bytes)
+{
+ gpointer mem;
+
+ if (!n_bytes)
+ return NULL;
+
+ mem = g_malloc(n_bytes);
+
+ memset(mem, 0, (size_t) n_bytes);
+
+ return mem;
+}
+
+gpointer g_try_malloc(gulong n_bytes)
+{
+ if (!n_bytes)
+ return NULL;
+
+ return malloc((size_t) n_bytes);
+}
+
+gpointer g_try_malloc0(gulong n_bytes)
+{
+ gpointer mem;
+
+ mem = g_try_malloc(n_bytes);
+ if (mem)
+ memset(mem, 0, (size_t) n_bytes);
+
+ return mem;
+}
+
+void g_free(gpointer mem)
+{
+ if (mem)
+ free(mem);
+}
+
+gchar *g_strdup(const gchar *str)
+{
+ gchar *s;
+
+ if (!str)
+ return NULL;
+
+ s = strdup(str);
+ if (!s) {
+ fprintf(stderr, "strdup: failed to allocate new string");
+ abort();
+ }
+
+ return s;
+}
+