diff options
author | Ulrich Sibiller <uli42@gmx.de> | 2019-06-17 16:06:02 +0200 |
---|---|---|
committer | Ulrich Sibiller <uli42@gmx.de> | 2019-06-19 00:49:57 +0200 |
commit | 3b06ad51d91ff2b9442f159cddf34ed03bc2dd35 (patch) | |
tree | 538f4261cdb9b79bd19537b4ed478439d1b9fb16 /nx-X11/programs/Xserver/hw/nxagent/Utils.h | |
parent | 0f8dbbab2a218269165f06de37db59b5a20f09ea (diff) | |
download | nx-libs-3b06ad51d91ff2b9442f159cddf34ed03bc2dd35.tar.gz nx-libs-3b06ad51d91ff2b9442f159cddf34ed03bc2dd35.tar.bz2 nx-libs-3b06ad51d91ff2b9442f159cddf34ed03bc2dd35.zip |
Screen.c: Fix: make sure RRCloseScreen is being called
Fixes ArcticaProject/nx-libs#598
In nxagentOpenScreen we first initialized the RRExtension for the
screen and then replaced pScreen->CloseScreen by
nxagentCloseScreen. This resulted in RandR's RRCloseScreen (and any
other CloseScreen procedure installed by extensions) being no longer
called.
Moving RandR init after configuring pScreen->CloseScreen ensures the
correct calling cascade:
RRCloseScreen -> nxagentCloseScreen ->fbCloseScreen (called explicitly
by nxagentCloseScreen).
Which in turn will fix this memory leak:
==9688== 328 (312 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 271 of 319
==9688== at 0x4837B65: calloc (vg_replace_malloc.c:752)
==9688== by 0x4ED2C6: RRScreenInit (randr.c:329)
==9688== by 0x1F2B18: nxagentInitRandRExtension (Extensions.c:122)
==9688== by 0x1DEAFF: nxagentOpenScreen (Screen.c:1409)
==9688== by 0x16D7F8: AddScreen (dispatch.c:4257)
==9688== by 0x1DA0CF: InitOutput (Init.c:397)
==9688== by 0x14DCC2: main (main.c:280)
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Utils.h')
0 files changed, 0 insertions, 0 deletions