SDL: Initialize invalid parent_{tray,entry} to NULL

From 354d2c390c6ec0be661fc146eca98aad6c910261 Mon Sep 17 00:00:00 2001
From: Semphris <[EMAIL REDACTED]>
Date: Thu, 16 Jan 2025 22:07:57 -0500
Subject: [PATCH] Initialize invalid parent_{tray,entry} to NULL

The API states that the related functions must return NULL if the function
called (get the parent tray, or get the parent entry) is invalid for this
menu. Initialising the fields to NULL makes that API correct for Windows.
---
 src/tray/windows/SDL_tray.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/tray/windows/SDL_tray.c b/src/tray/windows/SDL_tray.c
index 88a35a7ec499e..256f3436e5e27 100644
--- a/src/tray/windows/SDL_tray.c
+++ b/src/tray/windows/SDL_tray.c
@@ -304,6 +304,7 @@ SDL_TrayMenu *SDL_CreateTrayMenu(SDL_Tray *tray)
 
     tray->menu->hMenu = CreatePopupMenu();
     tray->menu->parent_tray = tray;
+    tray->menu->parent_entry = NULL;
 
     return tray->menu;
 }
@@ -395,6 +396,8 @@ SDL_TrayEntry *SDL_InsertTrayEntryAt(SDL_TrayMenu *menu, int pos, const char *la
         return NULL;
     }
 
+    SDL_memset((void *) entry, 0, sizeof(*entry));
+
     wchar_t *label_w = NULL;
 
     if (label && (label_w = escape_label(label)) == NULL) {
@@ -417,10 +420,13 @@ SDL_TrayEntry *SDL_InsertTrayEntryAt(SDL_TrayMenu *menu, int pos, const char *la
             return NULL;
         }
 
+        SDL_memset((void *) entry->submenu, 0, sizeof(*entry->submenu));
+
         entry->submenu->hMenu = CreatePopupMenu();
         entry->submenu->nEntries = 0;
         entry->submenu->entries = NULL;
         entry->submenu->parent_entry = entry;
+        entry->submenu->parent_tray = NULL;
 
         entry->id = (UINT_PTR) entry->submenu->hMenu;
     } else {