]> git.sur5r.net Git - i3/i3/commitdiff
move sstrdup, scalloc, smalloc, srealloc to libi3, improve error messages
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 2 Oct 2011 17:08:49 +0000 (18:08 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 2 Oct 2011 17:09:30 +0000 (18:09 +0100)
include/libi3.h
include/util.h
libi3/safewrappers.c [new file with mode: 0644]
src/cfgparse.l
src/cmdparse.l
src/util.c

index 3883ba82b9de0e7477beb9f8d4515b012f93d92b..a675d11ed41139db7944b581f3d5cfb44ef0acdc 100644 (file)
  */
 char *socket_path_from_x11();
 
+/**
+ * Safe-wrapper around malloc which exits if malloc returns NULL (meaning that
+ * there is no more memory available)
+ *
+ */
+void *smalloc(size_t size);
+
+/**
+ * Safe-wrapper around calloc which exits if malloc returns NULL (meaning that
+ * there is no more memory available)
+ *
+ */
+void *scalloc(size_t size);
+
+/**
+ * Safe-wrapper around realloc which exits if realloc returns NULL (meaning
+ * that there is no more memory available).
+ *
+ */
+void *srealloc(void *ptr, size_t size);
+
+/**
+ * Safe-wrapper around strdup which exits if malloc returns NULL (meaning that
+ * there is no more memory available)
+ *
+ */
+char *sstrdup(const char *str);
+
 #endif
index edc51d812de74580d6387aca300a70a5e4c597df..7c7b819a97269c6e8fcd5c0080839d156c3aae96 100644 (file)
@@ -66,34 +66,6 @@ Rect rect_add(Rect a, Rect b);
  */
 bool update_if_necessary(uint32_t *destination, const uint32_t new_value);
 
-/**
- * Safe-wrapper around malloc which exits if malloc returns NULL (meaning that
- * there is no more memory available)
- *
- */
-void *smalloc(size_t size);
-
-/**
- * Safe-wrapper around calloc which exits if malloc returns NULL (meaning that
- * there is no more memory available)
- *
- */
-void *scalloc(size_t size);
-
-/**
- * Safe-wrapper around realloc which exits if realloc returns NULL (meaning
- * that there is no more memory available).
- *
- */
-void *srealloc(void *ptr, size_t size);
-
-/**
- * Safe-wrapper around strdup which exits if malloc returns NULL (meaning that
- * there is no more memory available)
- *
- */
-char *sstrdup(const char *str);
-
 /**
  * Starts the given application by passing it through a shell. We use double
  * fork to avoid zombie processes. As the started application’s parent exits
diff --git a/libi3/safewrappers.c b/libi3/safewrappers.c
new file mode 100644 (file)
index 0000000..82311fe
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ *
+ * © 2009-2011 Michael Stapelberg and contributors
+ *
+ * See file LICENSE for license information.
+ *
+ */
+#include <string.h>
+#include <stdlib.h>
+#include <err.h>
+
+
+/*
+ * The s* functions (safe) are wrappers around malloc, strdup, …, which exits if one of
+ * the called functions returns NULL, meaning that there is no more memory available
+ *
+ */
+void *smalloc(size_t size) {
+    void *result = malloc(size);
+    if (result == NULL)
+        err(EXIT_FAILURE, "malloc(%zd)", size);
+    return result;
+}
+
+void *scalloc(size_t size) {
+    void *result = calloc(size, 1);
+    if (result == NULL)
+        err(EXIT_FAILURE, "calloc(%zd)", size);
+    return result;
+}
+
+void *srealloc(void *ptr, size_t size) {
+    void *result = realloc(ptr, size);
+    if (result == NULL && size > 0)
+        err(EXIT_FAILURE, "realloc(%zd)", size);
+    return result;
+}
+
+char *sstrdup(const char *str) {
+    char *result = strdup(str);
+    if (result == NULL)
+        err(EXIT_FAILURE, "strdup()");
+    return result;
+}
index dad5a915520dd60bfe10c9577c0587a180b92d27..49714401b512ecaf0a49ff2f1ae0e36fb0d60930 100644 (file)
@@ -17,6 +17,7 @@
 #include "config.h"
 #include "log.h"
 #include "util.h"
+#include "libi3.h"
 
 #include "cfgparse.tab.h"
 
index 968b7e52e512b22845e1ae99ef461e16d193726d..f6b132ca113cd66cb4dd2a5f63d5ddff39415443 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "config.h"
 #include "util.h"
+#include "libi3.h"
 
 int cmdyycolumn = 1;
 
index 2d6c3e147138d147de2f80dacb5bc1d74b950a67..30371bcdbf86493c7c4056e1f59ebd8b6828baa0 100644 (file)
@@ -58,36 +58,6 @@ bool update_if_necessary(uint32_t *destination, const uint32_t new_value) {
     return ((*destination = new_value) != old_value);
 }
 
-/*
- * The s* functions (safe) are wrappers around malloc, strdup, …, which exits if one of
- * the called functions returns NULL, meaning that there is no more memory available
- *
- */
-void *smalloc(size_t size) {
-    void *result = malloc(size);
-    exit_if_null(result, "Error: out of memory (malloc(%zd))\n", size);
-    return result;
-}
-
-void *scalloc(size_t size) {
-    void *result = calloc(size, 1);
-    exit_if_null(result, "Error: out of memory (calloc(%zd))\n", size);
-    return result;
-}
-
-void *srealloc(void *ptr, size_t size) {
-    void *result = realloc(ptr, size);
-    if (result == NULL && size > 0)
-        die("Error: out memory (realloc(%zd))\n", size);
-    return result;
-}
-
-char *sstrdup(const char *str) {
-    char *result = strdup(str);
-    exit_if_null(result, "Error: out of memory (strdup())\n");
-    return result;
-}
-
 /*
  * Starts the given application by passing it through a shell. We use double fork
  * to avoid zombie processes. As the started application’s parent exits (immediately),