From 2692f07a2bde625264c0d8838329ac1f86ac8f74 Mon Sep 17 00:00:00 2001 From: Aoran Zeng Date: Wed, 20 Aug 2025 15:06:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=20`xy=5Fcant=5Fbe=5Fnull()`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/xy.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/xy.h b/lib/xy.h index e7e7acb..0fb9e25 100644 --- a/lib/xy.h +++ b/lib/xy.h @@ -107,6 +107,7 @@ bool xy_enable_color = true; #define xy_unimplemented() assert(!"Unimplemented temporarily") #define xy_unreached() assert(!"This code shouldn't be reached") #define xy_noop() (void)0 +#define xy_cant_be_null(p) if(!p) assert(!"This pointer can't be null") static void _xy_print_int (int n) {printf ("%d", n);} static void _xy_print_long (long n) {printf ("%ld", n);} @@ -1112,6 +1113,7 @@ xy_seq_new (void) uint32_t xy_seq_len (XySeq_t *seq) { + xy_cant_be_null (seq); return seq->length; } @@ -1121,7 +1123,7 @@ xy_seq_len (XySeq_t *seq) void * xy_seq_first (XySeq_t *seq) { - if (!seq) return NULL; + xy_cant_be_null (seq); return seq->first_item ? seq->first_item->data : NULL; } @@ -1131,7 +1133,7 @@ xy_seq_first (XySeq_t *seq) void * xy_seq_last (XySeq_t *seq) { - if (!seq) return NULL; + xy_cant_be_null (seq); return seq->last_item ? seq->last_item->data : NULL; } @@ -1142,7 +1144,7 @@ xy_seq_last (XySeq_t *seq) void xy_seq_push (XySeq_t *seq, void *data) { - if (!seq) return NULL; + xy_cant_be_null (seq); XySeqItem_t *it = xy_malloc0 (sizeof (XySeqItem_t)); if (!it) return NULL; @@ -1173,7 +1175,9 @@ xy_seq_push (XySeq_t *seq, void *data) void * xy_seq_pop (XySeq_t *seq) { - if (!seq || 0==seq->length) return NULL; + xy_cant_be_null (seq); + + if (0==seq->length) return NULL; // 更新 item 间关系 XySeqItem_t *l = seq->last_item; @@ -1200,7 +1204,8 @@ xy_seq_pop (XySeq_t *seq) void xy_seq_each (XySeq_t *seq, void (*func)(void *)) { - if (!seq || !func) return; + xy_cant_be_null (seq); + xy_cant_be_null (func); for (XySeqItem_t *it = seq->first_item; it; it = it->next) {