xserver/exa
Shixiong Ou 85d6380e6b exa: use dixRegisterPrivateKey to create PRIVATE PIXMAP
[WHY]
There is a chance of a coredump occurring when stopping Xorg,
the specific information is as follows:

  raise () from /lib/loongarch64-linux-gnu/libc.so.6
  abort () from /lib/loongarch64-linux-gnu/libc.so.6
  ?? () from /lib/loongarch64-linux-gnu/libc.so.6
  __assert_fail () from /lib/loongarch64-linux-gnu/libc.so.6
  dixGetPrivateAddr (key=<optimized out>, key=<optimized out>, privates=0xaab99cfea0) at ../../../../include/privates.h:121
  dixGetPrivateAddr (key=<optimized out>, key=<optimized out>, privates=<optimized out>) at ../../../../exa/exa_driver.c:205
  dixGetPrivate (key=<optimized out>, privates=<optimized out>) at ../../../../include/privates.h:136
  exaDestroyPixmap_driver (pPixmap=<optimized out>) at ../../../../exa/exa_driver.c:195
  FreePicture (pid=0, value=0xaab9fbf380) at ../../../../render/picture.c:1416
  FreePicture (value=0xaab9fbf380, pid=pid@entry=0) at ../../../../render/picture.c:1379
  exaUnrealizeGlyphCaches (pScreen=pScreen@entry=0xaab99cfad0, format=<optimized out>) at ../../../../exa/exa_glyphs.c:130
  exaGlyphsFini (pScreen=pScreen@entry=0xaab99cfad0) at ../../../../exa/exa_glyphs.c:246
  exaCloseScreen (pScreen=0xaab99cfad0) at ../../../../exa/exa.c:746
  present_close_screen (screen=0xaab99cfad0) at ../../../../present/present_screen.c:70
  CursorCloseScreen (pScreen=0xaab99cfad0) at ../../../../xfixes/cursor.c:205

This is because the screen specific private key has already been released
by dixFreeScreenSpecificPrivates() function before calling ->CloseScreen().

[HOW]
use dixRegisterPrivateKey to create PRIVATE PIXMAP.

Signed-off-by: Shixiong Ou <oushixiong@kylinos.cn>
2025-09-23 15:35:21 +08:00
..
exa.c exa: use dixRegisterPrivateKey to create PRIVATE PIXMAP 2025-09-23 15:35:21 +08:00
exa.h exa: rename some badly named variables 2020-07-10 06:17:40 +10:00
exa_accel.c drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
exa_classic.c Revert "exa: simplify CreatePixmap()/DestroyPixmap() handlers error pathes" 2025-06-17 20:02:16 +00:00
exa_driver.c Revert "exa: simplify CreatePixmap()/DestroyPixmap() handlers error pathes" 2025-06-17 20:02:16 +00:00
exa_glyphs.c Revert "exa: use dixDestroyPixmap() instead of direct driver call" 2025-06-17 20:02:16 +00:00
exa_migration_classic.c drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
exa_migration_mixed.c drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
exa_mixed.c Revert "exa: simplify CreatePixmap()/DestroyPixmap() handlers error pathes" 2025-06-17 20:02:16 +00:00
exa_offscreen.c Revert "exa: use dixDestroyPixmap() instead of direct driver call" 2025-06-17 20:02:16 +00:00
exa_priv.h exa: use dixRegisterPrivateKey to create PRIVATE PIXMAP 2025-09-23 15:35:21 +08:00
exa_render.c Revert "exa: use dixDestroyPixmap() instead of direct driver call" 2025-06-17 20:02:16 +00:00
exa_unaccel.c mi: Add a default no-op miSourceValidate 2019-10-30 16:26:01 +00:00
meson.build Add a Meson build system alongside autotools. 2017-04-26 15:25:27 -07:00