• Ulrich Sibiller's avatar
    Screen.c: Fix: make sure RRCloseScreen is being called · 3b06ad51
    Ulrich Sibiller authored
    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)
    3b06ad51
Name
Last commit
Last update
..
X11/include Loading commit data...
compext Loading commit data...
man Loading commit data...
.gitignore Loading commit data...
Agent.h Loading commit data...
Args.c Loading commit data...
Args.h Loading commit data...
Atoms.c Loading commit data...
Atoms.h Loading commit data...
Binder.c Loading commit data...
Binder.h Loading commit data...
BitmapUtils.c Loading commit data...
Client.c Loading commit data...
Client.h Loading commit data...
Clipboard.c Loading commit data...
Clipboard.h Loading commit data...
Colormap.c Loading commit data...
Colormap.h Loading commit data...
Composite.c Loading commit data...
Composite.h Loading commit data...
Cursor.c Loading commit data...
Cursor.h Loading commit data...
Dialog.c Loading commit data...
Dialog.h Loading commit data...
Display.c Loading commit data...
Display.h Loading commit data...
Drawable.c Loading commit data...
Drawable.h Loading commit data...
Error.c Loading commit data...
Error.h Loading commit data...
Events.c Loading commit data...
Events.h Loading commit data...
Extensions.c Loading commit data...
Extensions.h Loading commit data...
Font.c Loading commit data...
Font.h Loading commit data...
GC.c Loading commit data...
GCOps.c Loading commit data...
GCOps.h Loading commit data...
GCs.h Loading commit data...
Handlers.c Loading commit data...
Handlers.h Loading commit data...
Holder.c Loading commit data...
Holder.h Loading commit data...
Icons.h Loading commit data...
Image.c Loading commit data...
Image.h Loading commit data...
Imakefile Loading commit data...
Init.c Loading commit data...
Init.h Loading commit data...
Keyboard.c Loading commit data...
Keyboard.h Loading commit data...
Keystroke.c Loading commit data...
Keystroke.h Loading commit data...
Literals.h Loading commit data...
Millis.c Loading commit data...
Millis.h Loading commit data...
NXdamage.c Loading commit data...
NXdispatch.c Loading commit data...
NXdixfonts.c Loading commit data...
NXevents.c Loading commit data...
NXextension.c Loading commit data...
NXglxext.c Loading commit data...
NXglyph.c Loading commit data...
NXglyphcurs.c Loading commit data...
NXglyphstr_GlyphRef.h Loading commit data...
NXglyphstr_GlyphSet.h Loading commit data...
NXmitrap.c Loading commit data...
NXpicture.c Loading commit data...
NXpicturestr_PictSolidFill.h Loading commit data...
NXproperty.c Loading commit data...
NXrender.c Loading commit data...
NXresource.c Loading commit data...
NXshm.c Loading commit data...
NXwindow.c Loading commit data...
NXxvdisp.c Loading commit data...
Options.c Loading commit data...
Options.h Loading commit data...
Pixels.c Loading commit data...
Pixels.h Loading commit data...
Pixmap.c Loading commit data...
Pixmaps.h Loading commit data...
Pointer.c Loading commit data...
Pointer.h Loading commit data...
Reconnect.c Loading commit data...
Reconnect.h Loading commit data...
Render.c Loading commit data...
Render.h Loading commit data...
Rootless.c Loading commit data...
Rootless.h Loading commit data...
Screen.c Loading commit data...
Screen.h Loading commit data...
Splash.c Loading commit data...
Splash.h Loading commit data...
Split.c Loading commit data...
Split.h Loading commit data...
Trap.c Loading commit data...
Trap.h Loading commit data...
Utils.h Loading commit data...
Visual.c Loading commit data...
Visual.h Loading commit data...
Window.c Loading commit data...
Windows.h Loading commit data...
nxagent.xpm Loading commit data...
nxmissing.xpm Loading commit data...
screensaver Loading commit data...
x11.svg Loading commit data...
x2goagent.xpm Loading commit data...