David Dawes
dawes****@XFree*****
2003年 8月 14日 (木) 10:41:28 JST
Could you get some more information from XAACacheTile() that might show why pCache is NULL? The values of size and the pCachePriv fields that get used might help. Thanks. David On Wed, Aug 13, 2003 at 04:52:13PM +0900, Chisato Yamauchi wrote: > Hi, > > Our investigation has progressed, so we report it. > > After I sent patch:5752, we were able to prepare a complete patch. >We attach the patch. The garbage problem is also solved! > > The investigation of this problem is done by Koike Kazuhiko. >Please write his name FIRST in ChangeLog when applying the attached >patch. > > Thanks. > >====================================================== > After X-TT Project >*** xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c.orig 2000-09-26 08:56:14.000000000 +0900 >--- xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c 2003-08-12 16:18:03.000000000 +0900 >*************** >*** 1472,1477 **** >--- 1472,1482 ---- > pCache = &cacheRoot[(*current)++]; > if(*current >= max) *current = 0; > >+ if ( pCache==NULL ){ >+ ErrorF("Something's wrong in XAACacheTile() [pCache==NULL]\n"); >+ return pCache; >+ } >+ > pCache->serialNumber = pPix->drawable.serialNumber; > pCache->trans_color = pCache->bg = pCache->fg = -1; > pCache->orig_w = w; pCache->orig_h = h; >*** xc/programs/Xserver/hw/xfree86/xaa/xaaPaintWin.c.orig 2003-02-18 01:08:29.000000000 +0900 >--- xc/programs/Xserver/hw/xfree86/xaa/xaaPaintWin.c 2003-08-12 18:47:13.000000000 +0900 >*************** >*** 164,172 **** > > XAACacheInfoPtr pCache = > (*infoRec->CacheTile)(infoRec->pScrn, pPix); >! (*infoRec->FillCacheBltRects)(infoRec->pScrn, GXcopy, ~0, >! nBox, pBox, xorg, yorg, pCache); >! return; > } > > if(infoRec->FillImageWriteRects && >--- 164,174 ---- > > XAACacheInfoPtr pCache = > (*infoRec->CacheTile)(infoRec->pScrn, pPix); >! if(pCache) { >! (*infoRec->FillCacheBltRects)(infoRec->pScrn, GXcopy, ~0, >! nBox, pBox, xorg, yorg, pCache); >! return; >! } > } > > if(infoRec->FillImageWriteRects &&