From 7b293c730b07d1586688e622b8d9cbbb4a52379b Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 9 Apr 2020 21:33:22 +0200 Subject: [PATCH] patch 8.2.0539: comparing two NULL list fails Problem: Comparing two NULL list fails. Solution: Change the order of comparing two lists. --- src/list.c | 7 +++++-- src/testdir/test_assert.vim | 3 +++ src/version.c | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/list.c b/src/list.c index 9fe538414..451e58591 100644 --- a/src/list.c +++ b/src/list.c @@ -368,12 +368,15 @@ list_equal( { listitem_T *item1, *item2; - if (l1 == NULL || l2 == NULL) - return FALSE; if (l1 == l2) return TRUE; if (list_len(l1) != list_len(l2)) return FALSE; + if (list_len(l1) == 0) + // empty and NULL list are considered equal + return TRUE; + if (l1 == NULL || l2 == NULL) + return FALSE; range_list_materialize(l1); range_list_materialize(l2); diff --git a/src/testdir/test_assert.vim b/src/testdir/test_assert.vim index 1b1f9e515..762f12ff5 100644 --- a/src/testdir/test_assert.vim +++ b/src/testdir/test_assert.vim @@ -36,6 +36,9 @@ func Test_assert_equal() call assert_equal(0, assert_equal(4, n)) let l = [1, 2, 3] call assert_equal(0, assert_equal([1, 2, 3], l)) + call assert_equal(test_null_list(), test_null_list()) + call assert_equal(test_null_list(), []) + call assert_equal([], test_null_list()) let s = 'foo' call assert_equal(1, assert_equal('bar', s)) diff --git a/src/version.c b/src/version.c index 0c147cce9..2bba57d7d 100644 --- a/src/version.c +++ b/src/version.c @@ -738,6 +738,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 539, /**/ 538, /**/ -- 2.50.1