Просмотр исходного кода

Allow iterating just the keys or values in a hashtable

Sam Lantinga 1 год назад
Родитель
Сommit
47450425fd
1 измененных файлов с 12 добавлено и 5 удалено
  1. 12 5
      src/SDL_hashtable.c

+ 12 - 5
src/SDL_hashtable.c

@@ -18,7 +18,6 @@
      misrepresented as being the original software.
      misrepresented as being the original software.
   3. This notice may not be removed or altered from any source distribution.
   3. This notice may not be removed or altered from any source distribution.
 */
 */
-
 #include "SDL_internal.h"
 #include "SDL_internal.h"
 #include "SDL_hashtable.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);
     HT_ASSERT(item <= end);
 
 
     if (item == end) {
     if (item == end) {
-        *_key = NULL;
-        *_value = NULL;
+        if (_key) {
+            *_key = NULL;
+        }
+        if (_value) {
+            *_value = NULL;
+        }
         return false;
         return false;
     }
     }
 
 
-    *_key = item->key;
-    *_value = item->value;
+    if (_key) {
+        *_key = item->key;
+    }
+    if (_value) {
+        *_value = item->value;
+    }
     *iter = item;
     *iter = item;
 
 
     return true;
     return true;