bdk-blender/source/blender/windowmanager
Bastien Montagne 563e45e58f WM: Fix invalid memory access in wmTimer handling code. 2.93 version
Timer management code often loops over the list of timers, calling
independant callbacks that end up freeing other timers in the list. That
would result in potentail access-after-free errors, as reported in #105160.

The typical identified scenario is wmTimer calling wmJob code, which
calls some of the job's callbacks (`update` or `end` e.g.), which call
`WM_report`, which removes and add another timer.

To address this issue on a general level, the deletion of timers is now
deferred, with the public API `WM_event_remove_timer` only marking the
timer for deletion, and the private new function
`wm_window_delete_removed_timers` effectively removing and deleting all
marked timers.

This implements design task #105369.

Pull Request #105380

Pull Request: blender/blender#105406
2023-03-16 12:38:25 +01:00
..
gizmo Fix T85567: Crash accessing gizmo group on __del__ 2021-04-24 23:37:32 +10:00
intern WM: Fix invalid memory access in wmTimer handling code. 2.93 version 2023-03-16 12:38:25 +01:00
message_bus Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fix 2020-09-04 21:04:16 +02:00
xr Cleanup: doxygen sections 2021-02-20 15:35:00 +11:00
CMakeLists.txt Fix T82675: Crash on exit when Blender is built as a Python module 2021-01-28 14:38:08 +11:00
WM_api.h WM: Fix invalid memory access in wmTimer handling code. 2.93 version 2023-03-16 12:38:25 +01:00
wm_cursors.h Nodes: Add support to mute node wires 2021-03-17 11:54:16 +00:00
wm_draw.h Merge branch 'blender-v2.90-release' into master 2020-08-07 10:04:57 +02:00
wm_event_system.h Code Style: use "#pragma once" in source directory 2020-08-07 09:50:34 +02:00
wm_event_types.h UI: Allow changing the active side of line gestures 2020-10-21 18:17:36 +02:00
wm_files.h Code Style: use "#pragma once" in source directory 2020-08-07 09:50:34 +02:00
WM_keymap.h Cleanup: pass keymap items as const where possible 2021-02-04 22:21:10 +11:00
WM_message.h Code Style: use "#pragma once" in source directory 2020-08-07 09:50:34 +02:00
wm_surface.h Code Style: use "#pragma once" in source directory 2020-08-07 09:50:34 +02:00
WM_toolsystem.h Cleanup: spelling 2021-02-14 20:58:04 +11:00
WM_types.h WM: Fix invalid memory access in wmTimer handling code. 2.93 version 2023-03-16 12:38:25 +01:00
wm_window.h WM: Fix invalid memory access in wmTimer handling code. 2.93 version 2023-03-16 12:38:25 +01:00
wm.h Cleanup: redundant struct declarations 2021-04-13 21:43:07 +10:00