- Fix user-mode region attribute handling in IntGdiSetRegionOwner.
svn path=/trunk/; revision=64178
PRGN_ATTR prgnattr;
PPROCESSINFO ppi;
PRGN_ATTR prgnattr;
PPROCESSINFO ppi;
- prgn = REGION_LockRgn(hRgn);
+ prgn = RGNOBJAPI_Lock(hRgn, &prgnattr);
if (!prgn)
{
return FALSE;
}
if (!prgn)
{
return FALSE;
}
- prgnattr = GDIOBJ_pvGetObjectAttr(&prgn->BaseObject);
- if (prgnattr)
+ if (prgnattr != &prgn->rgnattr)
{
GDIOBJ_vSetObjectAttr(&prgn->BaseObject, NULL);
{
GDIOBJ_vSetObjectAttr(&prgn->BaseObject, NULL);
+ prgn->prgnattr = &prgn->rgnattr;
ppi = PsGetCurrentProcessWin32Process();
GdiPoolFree(ppi->pPoolRgnAttr, prgnattr);
}
RGNOBJAPI_Unlock(prgn);
ppi = PsGetCurrentProcessWin32Process();
GdiPoolFree(ppi->pPoolRgnAttr, prgnattr);
}
RGNOBJAPI_Unlock(prgn);
- return GreSetObjectOwner(hRgn, OwnerMask);
+ return GreSetObjectOwner(hRgn, OwnerMask);