From fa1f4d4c50586ce80d090c6cea949f87914c7a23 Mon Sep 17 00:00:00 2001 From: jackchentwkh Date: Sun, 23 May 2021 21:57:52 +0800 Subject: [PATCH] Make sure packet iterator is validate after DSStream_Packet_Clear() calls erase(). this fixs debug builds with PGR2 --- src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.cpp b/src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.cpp index f8cc13daf..d31da5ffc 100644 --- a/src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.cpp +++ b/src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.cpp @@ -308,6 +308,8 @@ bool DSStream_Packet_Process( } return 0; } + //the iterator might be invalidated, so we update it again. + packetCurrent = pThis->Host_BufferPacketArray.begin(); #if 0 // Extend debug verification EmuLog(LOG_LEVEL::DEBUG, "nextBuffer: %08X; packetCurrent->bufPlayed: %08X; bufPlayed: %08X;\n", packetCurrent._Ptr,