xserver: Branch 'master'
Adam Jackson
ajax at kemper.freedesktop.org
Wed Dec 2 07:57:10 PST 2015
randr/rrcrtc.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
New commits:
commit 5bccde749db93296b7784e4cdc5e54c4443656c1
Author: Michel Dänzer <michel.daenzer at amd.com>
Date: Wed Dec 2 18:21:12 2015 +0900
randr: Stop dirty tracking for shared pixmap being destroyed
Otherwise, we leave a dangling reference to the destroyed pixmap in the
master screen's pixmap_dirty_list.
Fixes regression from commit cf5d6414 ("randr: Factor out shared pixmap
destruction").
Reviewed-by: Adam Jackson <ajax at redhat.com>
Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index 8d9c5bb..ec26fcd 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -363,13 +363,18 @@ RRComputeContiguity(ScreenPtr pScreen)
static void
rrDestroySharedPixmap(RRCrtcPtr crtc, PixmapPtr pPixmap) {
- if (crtc->pScreen->current_master && pPixmap->master_pixmap) {
+ ScreenPtr master = crtc->pScreen->current_master;
+
+ if (master && pPixmap->master_pixmap) {
+ PixmapPtr mscreenpix = master->GetScreenPixmap(master);
+
+ master->StopPixmapTracking(mscreenpix, pPixmap);
/*
* Unref the pixmap twice: once for the original reference, and once
* for the reference implicitly added by PixmapShareToSlave.
*/
- crtc->pScreen->current_master->DestroyPixmap(pPixmap->master_pixmap);
- crtc->pScreen->current_master->DestroyPixmap(pPixmap->master_pixmap);
+ master->DestroyPixmap(pPixmap->master_pixmap);
+ master->DestroyPixmap(pPixmap->master_pixmap);
}
crtc->pScreen->DestroyPixmap(pPixmap);
More information about the xorg-commit
mailing list