SDL: Allow iterating just the keys or values in a hashtable

From 47450425fd4221f1979eee95afda4801e389f3fc Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Wed, 2 Oct 2024 10:19:40 -0700
Subject: [PATCH] Allow iterating just the keys or values in a hashtable

---
 src/SDL_hashtable.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/SDL_hashtable.c b/src/SDL_hashtable.c
index f2b80c4cbb182..52c8d7b096ae9 100644
--- a/src/SDL_hashtable.c
+++ b/src/SDL_hashtable.c
@@ -18,7 +18,6 @@
      misrepresented as being the original software.
   3. This notice may not be removed or altered from any source distribution.
 */
-
 #include "SDL_internal.h"
 #include "SDL_hashtable.h"
 
@@ -429,13 +428,21 @@ bool SDL_IterateHashTable(const SDL_HashTable *table, const void **_key, const v
     HT_ASSERT(item <= end);
 
     if (item == end) {
-        *_key = NULL;
-        *_value = NULL;
+        if (_key) {
+            *_key = NULL;
+        }
+        if (_value) {
+            *_value = NULL;
+        }
         return false;
     }
 
-    *_key = item->key;
-    *_value = item->value;
+    if (_key) {
+        *_key = item->key;
+    }
+    if (_value) {
+        *_value = item->value;
+    }
     *iter = item;
 
     return true;