summaryrefslogtreecommitdiff
path: root/src/common.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/common.cc')
-rw-r--r--src/common.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/common.cc b/src/common.cc
index 36ddbeb..fd2a843 100644
--- a/src/common.cc
+++ b/src/common.cc
@@ -49,6 +49,10 @@ typedef intptr_t isize;
if (unlikely(!(cond))) panic("assertion failed: %s", #cond); \
} while (0)
+#define assert_neq(x, y) assert(x != y)
+#define assert_st(x, y) assert(x < y)
+#define assert_ste(x, y) assert(x <= y)
+
/* slice and string handling */
template <typename T>
@@ -75,6 +79,9 @@ struct Slice {
template <typename T>
bool slice_write(const Slice<T>* slice, FILE* stream) {
+ assert_neq(slice, nullptr);
+ assert_neq(stream, nullptr);
+
usize rc = fwrite(slice->ptr, sizeof(T), slice->length, stream);
if (rc == 0 || slice->size() > rc) return false;
return true;
@@ -93,8 +100,8 @@ struct Link {
};
static inline void link_after(Link* prev, Link* nlink) {
- assert(prev != nullptr);
- assert(nlink != nullptr);
+ assert_neq(prev, nullptr);
+ assert_neq(nlink, nullptr);
Link* next = prev->next;
@@ -107,7 +114,7 @@ static inline void link_after(Link* prev, Link* nlink) {
}
static inline void link_remove(Link* item) {
- assert(item != nullptr);
+ assert_neq(item, nullptr);
Link* prev = item->prev;
Link* next = item->next;