diff options
author | Thomas Haller <thaller@redhat.com> | 2017-11-15 15:14:19 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-11-16 11:49:51 +0100 |
commit | c3d98a3df6432f3d9d143dec6d328feec0873b4a (patch) | |
tree | 02749c94cb411a176f6b2ca954bbdd60e1c58ab5 | |
parent | 3751cceeec2bdf246c04e5bd846086e6feeeb7b6 (diff) | |
download | NetworkManager-c3d98a3df6432f3d9d143dec6d328feec0873b4a.tar.gz |
shared: optimize nm_hash_str() for NULL to not use siphash24()
-rw-r--r-- | libnm-core/tests/test-general.c | 4 | ||||
-rw-r--r-- | shared/nm-utils/nm-hash-utils.c | 9 |
2 files changed, 8 insertions, 5 deletions
diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c index 59da6b0c34..0529d07d1f 100644 --- a/libnm-core/tests/test-general.c +++ b/libnm-core/tests/test-general.c @@ -171,6 +171,10 @@ test_nm_hash (void) g_assert (nm_hash_static (0)); g_assert (nm_hash_static (777)); + g_assert (nm_hash_str (NULL)); + g_assert (nm_hash_str ("")); + g_assert (nm_hash_str ("a")); + _test_hash_str (""); _test_hash_str ("a"); _test_hash_str ("aa"); diff --git a/shared/nm-utils/nm-hash-utils.c b/shared/nm-utils/nm-hash-utils.c index 4cfb62bd50..0d0ba373a1 100644 --- a/shared/nm-utils/nm-hash-utils.c +++ b/shared/nm-utils/nm-hash-utils.c @@ -127,11 +127,10 @@ nm_hash_str (const char *str) { NMHashState h; - if (str) { - nm_hash_init (&h, 1867854211u); - nm_hash_update_str (&h, str); - } else - nm_hash_init (&h, 842995561u); + if (!str) + return nm_hash_static (1867854211u); + nm_hash_init (&h, 1867854211u); + nm_hash_update_str (&h, str); return nm_hash_complete (&h); } |