From 9a2203b9bbf7e8c0da802c2317eca3fdd4a3af36 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 25 Feb 2025 17:32:44 +0100 Subject: [PATCH] pstats: Backport fix for crash when receiving frames out of order --- pandatool/src/pstatserver/pStatThreadData.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pandatool/src/pstatserver/pStatThreadData.cxx b/pandatool/src/pstatserver/pStatThreadData.cxx index bef18c8a24..1df4e7c0e7 100644 --- a/pandatool/src/pstatserver/pStatThreadData.cxx +++ b/pandatool/src/pstatserver/pStatThreadData.cxx @@ -290,6 +290,14 @@ record_new_frame(int frame_number, PStatFrameData *frame_data) { } int index = frame_number - _first_frame_number; + + // It's possible to receive frames out of order. + while (index < 0) { + _frames.push_front(nullptr); + ++index; + --_first_frame_number; + } + nassertv(index >= 0 && index < (int)_frames.size()); if (_frames[index] != nullptr) {