summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHisham <hisham@gobolinux.org>2016-01-31 12:01:48 +0100
committerHisham <hisham@gobolinux.org>2016-01-31 12:01:48 +0100
commita1f7f2869ec2bd860d5b4e4b39736ca877afdf6f (patch)
tree21f785d030fde450f42154c33fc592078ef9e624
parentdcfcae1ed40f81f2e29d86be04760cb3ea65e1bf (diff)
Add allocation tests
-rw-r--r--XAlloc.c55
-rw-r--r--XAlloc.h20
2 files changed, 75 insertions, 0 deletions
diff --git a/XAlloc.c b/XAlloc.c
new file mode 100644
index 00000000..6eb3d4f6
--- /dev/null
+++ b/XAlloc.c
@@ -0,0 +1,55 @@
+
+#include "XAlloc.h"
+#include "RichString.h"
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#include <unistd.h>
+#include <string.h>
+
+/*{
+#include <stdlib.h>
+}*/
+
+static char oomMessage[] = "Out of memory!\n";
+
+void* xMalloc(size_t size) {
+ void* data = malloc(size);
+ if (!data && size > 0) {
+ curs_set(1);
+ endwin();
+ write(2, oomMessage, sizeof oomMessage);
+ }
+ return data;
+}
+
+void* xCalloc(size_t nmemb, size_t size) {
+ void* data = calloc(nmemb, size);
+ if (!data && nmemb > 0 && size > 0) {
+ curs_set(1);
+ endwin();
+ write(2, oomMessage, sizeof oomMessage);
+ }
+ return data;
+}
+
+void* xRealloc(void* ptr, size_t size) {
+ void* data = realloc(ptr, size);
+ if (!data && size > 0) {
+ curs_set(1);
+ endwin();
+ write(2, oomMessage, sizeof oomMessage);
+ }
+ return data;
+}
+
+char* xStrdup(const char* str) {
+ char* data = strdup(str);
+ if (!data && str) {
+ curs_set(1);
+ endwin();
+ write(2, oomMessage, sizeof oomMessage);
+ }
+ return data;
+}
diff --git a/XAlloc.h b/XAlloc.h
new file mode 100644
index 00000000..3cc060d9
--- /dev/null
+++ b/XAlloc.h
@@ -0,0 +1,20 @@
+/* Do not edit this file. It was automatically generated. */
+
+#ifndef HEADER_XAlloc
+#define HEADER_XAlloc
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+
+#include <stdlib.h>
+
+void* xMalloc(size_t size);
+
+void* xCalloc(size_t nmemb, size_t size);
+
+void* xRealloc(void* ptr, size_t size);
+
+char* xStrdup(const char* str);
+
+#endif

© 2014-2024 Faster IT GmbH | imprint | privacy policy