From 3a03985ae49e050f97e103f7cc0c5546dfa5d80c Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 24 Apr 2012 21:14:17 +0200 Subject: [PATCH] val_labs_equal: Accept null pointers Instead of checking for NULL before calling val_labs_equal, put the onus on the function itself to deal with null pointers and behave appropriately. --- src/data/value-labels.c | 8 +++++++- src/ui/gui/psppire-value-entry.c | 4 +--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/data/value-labels.c b/src/data/value-labels.c index 0b2ae3f632..c405961f29 100644 --- a/src/data/value-labels.c +++ b/src/data/value-labels.c @@ -362,7 +362,13 @@ val_labs_equal (const struct val_labs *a, const struct val_labs *b) { const struct val_lab *label; - if (val_labs_count (a) != val_labs_count (b) || a->width != b->width) + if (val_labs_count (a) != val_labs_count (b)) + return false; + + if (a == NULL || b == NULL) + return true; + + if (a->width != b->width) return false; HMAP_FOR_EACH (label, struct val_lab, node, &a->labels) diff --git a/src/ui/gui/psppire-value-entry.c b/src/ui/gui/psppire-value-entry.c index 4cc8be9871..85dbaa093c 100644 --- a/src/ui/gui/psppire-value-entry.c +++ b/src/ui/gui/psppire-value-entry.c @@ -319,9 +319,7 @@ void psppire_value_entry_set_value_labels (PsppireValueEntry *obj, const struct val_labs *val_labs) { - if (val_labs != NULL - ? obj->val_labs == NULL || !val_labs_equal (obj->val_labs, val_labs) - : obj->val_labs != NULL) + if (!val_labs_equal (obj->val_labs, val_labs)) { obj->cur_value = NULL; -- 2.30.2