summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-05-31 15:22:47 -0300
committerEuAndreh <eu@euandre.org>2024-05-31 15:22:47 -0300
commita4362fc06770f2ff86ef7226b0f0907b8063b5b2 (patch)
tree7ea89f69f069140faf5f2b39c8d67052b024f77a /src
parentsrc/vector.h: Revert back to doing vector_free(&v) (diff)
downloadpindaiba-a4362fc06770f2ff86ef7226b0f0907b8063b5b2.tar.gz
pindaiba-a4362fc06770f2ff86ef7226b0f0907b8063b5b2.tar.xz
Use freeit() everywhere
Diffstat (limited to 'src')
-rw-r--r--src/random.c3
-rw-r--r--src/string.c12
-rw-r--r--src/util.c17
-rw-r--r--src/util.h6
-rw-r--r--src/vector.c12
5 files changed, 25 insertions, 25 deletions
diff --git a/src/random.c b/src/random.c
index 2b41645..df2d3ff 100644
--- a/src/random.c
+++ b/src/random.c
@@ -8,6 +8,7 @@
#include <string.h>
#include "logerr.h"
+#include "util.h"
#include "random.h"
@@ -54,7 +55,7 @@ out:
}
}
if (ret != NULL) {
- free(ret);
+ freeit((void *)&ret);
}
return rc;
}
diff --git a/src/string.c b/src/string.c
index dce00f3..5b06519 100644
--- a/src/string.c
+++ b/src/string.c
@@ -57,12 +57,10 @@ string_new_with(
out:
if (rc) {
if (bytes != NULL) {
- free((void *)bytes);
- ret = NULL;
+ freeit((void *)&bytes);
}
if (ret != NULL) {
- free((void *)ret);
- ret = NULL;
+ freeit((void *)&ret);
}
}
return rc;
@@ -144,12 +142,10 @@ string_append(
out:
if (rc) {
if (bytes != NULL) {
- free((void *)bytes);
- bytes = NULL;
+ freeit((void *)&bytes);
}
if (ret != NULL) {
- free((void *)ret);
- ret = NULL;
+ freeit((void *)&ret);
}
}
return rc;
diff --git a/src/util.c b/src/util.c
index e295cb6..c0498aa 100644
--- a/src/util.c
+++ b/src/util.c
@@ -10,12 +10,21 @@
#include "util.h"
+
const size_t
NULL_TERMINATOR = sizeof((char)'\0');
const int
EXIT_USAGE = 2;
+
+
+void
+freeit(const void **const ptr) {
+ free((void *)*ptr);
+ *ptr = NULL;
+}
+
int
slurp(const char *const filename, char **out) {
int rc = -1;
@@ -71,14 +80,8 @@ out:
}
if (rc) {
if (str != NULL) {
- free(str);
+ freeit((void *)&str);
}
}
return rc;
}
-
-void
-freeit(const void **const ptr) {
- free((void *)*ptr);
- *ptr = NULL;
-}
diff --git a/src/util.h b/src/util.h
index f1bace9..7e7db1f 100644
--- a/src/util.h
+++ b/src/util.h
@@ -4,8 +4,10 @@ NULL_TERMINATOR;
extern const int
EXIT_USAGE;
-int
-slurp(const char *const filename, char **out);
+
void
freeit(const void **const ptr);
+
+int
+slurp(const char *const filename, char **out);
diff --git a/src/vector.c b/src/vector.c
index b65ee2f..e5f5949 100644
--- a/src/vector.c
+++ b/src/vector.c
@@ -9,10 +9,11 @@
#include <stdio.h>
#include <string.h>
-#include "logerr.h"
#include "catalog.h"
#include "i18n.h"
+#include "logerr.h"
#include "math.h"
+#include "util.h"
#include "vector.h"
@@ -86,12 +87,10 @@ vector_new_with(
out:
if (rc) {
if (ret != NULL) {
- free((void *)ret);
- ret = NULL;
+ freeit((void *)&ret);
}
if (values != NULL) {
- free((void *)values);
- values = NULL;
+ freeit((void *)&values);
}
}
return rc;
@@ -198,8 +197,7 @@ vector_push_back(const struct Vector *const v, const void *const value) {
out:
if (rc) {
if (new_values != NULL) {
- free(new_values);
- new_values = NULL;
+ freeit((void *)&new_values);
}
}
return rc;