randr: Check rrPrivKey in RRHasScanoutPixmap()
RRHasScanoutPixmap() is called from xf86CheckHWCursor(), regardless of whether or not RandR has been initialized. As mentioned in commit4226c6d
, it's possible that RandR has not been initialized if the server is configured with Xinerama and there is more than one X screen. Calling rrGetScrPriv when RandR isn't initialized causes an assertion failure that aborts the server: Xorg: ../include/privates.h:121: dixGetPrivateAddr: Assertion key->initialized' failed. Just as in commit4226c6d
, fix the problem by checking dixPrivateKeyRegistered(rrPrivKey) before calling rrGetScrPriv. Signed-off-by: Alex Goins <agoins@nvidia.com>
This commit is contained in:
parent
6172bd2b41
commit
8eeff5d788
|
@ -2012,9 +2012,15 @@ RRReplaceScanoutPixmap(DrawablePtr pDrawable, PixmapPtr pPixmap, Bool enable)
|
|||
Bool
|
||||
RRHasScanoutPixmap(ScreenPtr pScreen)
|
||||
{
|
||||
rrScrPriv(pScreen);
|
||||
rrScrPrivPtr pScrPriv;
|
||||
int i;
|
||||
|
||||
/* Bail out if RandR wasn't initialized. */
|
||||
if (!dixPrivateKeyRegistered(rrPrivKey))
|
||||
return FALSE;
|
||||
|
||||
pScrPriv = rrGetScrPriv(pScreen);
|
||||
|
||||
if (!pScreen->is_output_secondary)
|
||||
return FALSE;
|
||||
|
||||
|
|
Loading…
Reference in New Issue