mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-25 16:42:26 +00:00
172c8add7d
As of currently, when an xcursor theme depends on itself or another theme that will eventually depend on it, `xcursor_load_theme` will recurse infinitely while processing the inherits. This change introduces a stack-allocated linked list of visited nodes by name, and skips any already visited nodes in the inherit list. Side effects: * Since the linked list is stack-allocated, there is a potential for an overflow if there is a very long list of dependencies. If this turns out to be a legitimate concern, the linked list is trivial to convert to being heap-allocated. * There is an existing linked list (technically doubly linked list) implementation in the wayland codebase. As of currently, the xcursor codebase does not refer to it. Consequently, this change writes a minimal single linked list implementation to utilize directly. This changeset is based on the merge request in wayland/wayland!376. The xcursor code is mostly shared between the two. This changeset diverges the files slightly due to stylistic differences between the repositories, but the logic is identical. Signed-off-by: Chloé Vulquin <toast@bunkerlabs.net> |
||
---|---|---|
.. | ||
meson.build | ||
wlr_xcursor.c | ||
xcursor.c |