Skip to content
  • Chloé Vulquin's avatar
    xcursor: catch theme inheritance loops · 16aee2ec
    Chloé Vulquin authored
    
    
    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 fixes #317.
    
    Signed-off-by: default avatarChloé Vulquin <toast@bunkerlabs.net>
    16aee2ec
Loading