diff options
| author | vaxerski <vaxry@vaxry.net> | 2025-08-16 16:52:28 +0200 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2025-08-16 16:52:40 +0200 |
| commit | 78c9e2080c800e9da0792b73ca436ef49384bfb7 (patch) | |
| tree | 29fb029e91650aa00e26bd3c6a2f01f20b1d3137 /src/helpers/MonitorFrameScheduler.hpp | |
| parent | 1cbb62ed6a3d9232448a89fe569d253794e5f114 (diff) | |
framescheduler: fix edge case crashes
rare UAFs because renderMonitor can call onDisconnect (ugh, that should be changed...)
fixes #11073
Diffstat (limited to 'src/helpers/MonitorFrameScheduler.hpp')
| -rw-r--r-- | src/helpers/MonitorFrameScheduler.hpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/helpers/MonitorFrameScheduler.hpp b/src/helpers/MonitorFrameScheduler.hpp index e6eab9c9..c9b45a64 100644 --- a/src/helpers/MonitorFrameScheduler.hpp +++ b/src/helpers/MonitorFrameScheduler.hpp @@ -22,15 +22,19 @@ class CMonitorFrameScheduler { void onFrame(); private: - bool canRender(); - void onFinishRender(); - bool newSchedulingEnabled(); + bool canRender(); + void onFinishRender(); + bool newSchedulingEnabled(); - bool m_renderAtFrame = true; - bool m_pendingThird = false; - hrc::time_point m_lastRenderBegun; + bool m_renderAtFrame = true; + bool m_pendingThird = false; + hrc::time_point m_lastRenderBegun; - PHLMONITORREF m_monitor; + PHLMONITORREF m_monitor; - UP<CEGLSync> m_sync; + UP<CEGLSync> m_sync; + + WP<CMonitorFrameScheduler> m_self; + + friend class CMonitor; }; |
