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@redhat.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
2e3d9623ae
commit
5bccde749d
|
@ -363,13 +363,18 @@ RRComputeContiguity(ScreenPtr pScreen)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
rrDestroySharedPixmap(RRCrtcPtr crtc, PixmapPtr pPixmap) {
|
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
|
* Unref the pixmap twice: once for the original reference, and once
|
||||||
* for the reference implicitly added by PixmapShareToSlave.
|
* for the reference implicitly added by PixmapShareToSlave.
|
||||||
*/
|
*/
|
||||||
crtc->pScreen->current_master->DestroyPixmap(pPixmap->master_pixmap);
|
master->DestroyPixmap(pPixmap->master_pixmap);
|
||||||
crtc->pScreen->current_master->DestroyPixmap(pPixmap->master_pixmap);
|
master->DestroyPixmap(pPixmap->master_pixmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
crtc->pScreen->DestroyPixmap(pPixmap);
|
crtc->pScreen->DestroyPixmap(pPixmap);
|
||||||
|
|
Loading…
Reference in New Issue