int size = w * h;
int size;  if ((w > MAXSHORT) || (h > MAXSHORT)) return NullPixmap;
XAACreatePixmap(ScreenPtr pScreen, int w, int h, int depth){    XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];    XAAPixmapPtr pPriv;    PixmapPtr pPix = NULL;    int size = w * h;        if (!infoRec->offscreenDepthsInitialized)	XAAInitializeOffscreenDepths (pScreen);    if(pScrn->vtSema && (infoRec->offscreenDepths & (1 << (depth - 1))) &&	(size >= MIN_OFFPIX_SIZE) && !SwitchedOut &&	(!infoRec->maxOffPixWidth || (w <= infoRec->maxOffPixWidth)) &&	(!infoRec->maxOffPixHeight || (h <= infoRec->maxOffPixHeight)) )    {        PixmapLinkPtr pLink;	PixmapPtr pScreenPix;        FBAreaPtr area;        int gran = 0;	switch(pScrn->bitsPerPixel) {        case 24:         case 8:  gran = 4;  break;        case 16: gran = 2;  break;        case 32: gran = 1;  break;        default: break;        }        if(BITMAP_SCANLINE_PAD == 64)           gran *= 2;        if(!(area = xf86AllocateOffscreenArea(pScreen, w, h, gran, 0,                                XAARemoveAreaCallback, NULL))) {	    goto BAILOUT;	}        if(!(pLink = xalloc(sizeof(PixmapLink)))) {            xf86FreeOffscreenArea(area);	    goto BAILOUT;	}	XAA_SCREEN_PROLOGUE (pScreen, CreatePixmap);	pPix = (*pScreen->CreatePixmap) (pScreen, 0, 0, depth);	XAA_SCREEN_EPILOGUE (pScreen, CreatePixmap, XAACreatePixmap);	if (!pPix) {	    xfree (pLink);            xf86FreeOffscreenArea(area);	    goto BAILOUT;	}		pScreenPix = (*pScreen->GetScreenPixmap)(pScreen);	pPriv = XAA_GET_PIXMAP_PRIVATE(pPix);	pPix->drawable.x = area->box.x1;	pPix->drawable.y = area->box.y1;	pPix->drawable.width = w;	pPix->drawable.height = h;	pPix->drawable.bitsPerPixel = pScrn->bitsPerPixel;	pPix->devKind = pScreenPix->devKind;	pPix->devPrivate.ptr = pScreenPix->devPrivate.ptr;	area->devPrivate.ptr = pPix;	pPriv->flags = OFFSCREEN;	pPriv->offscreenArea = area; 	pPriv->freeData = FALSE;	    	pLink->next = infoRec->OffscreenPixmaps;	pLink->pPix = pPix;	infoRec->OffscreenPixmaps = pLink;	return pPix;    }BAILOUT:    XAA_SCREEN_PROLOGUE (pScreen, CreatePixmap);    pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth);    XAA_SCREEN_EPILOGUE (pScreen, CreatePixmap, XAACreatePixmap);    if(pPix) {       pPriv = XAA_GET_PIXMAP_PRIVATE(pPix);       pPriv->flags = 0;       pPriv->offscreenArea = NULL;       pPriv->freeData = FALSE;       if(!w || !h) /* either scratch or shared memory */	    pPriv->flags |= SHARED_PIXMAP;    }    return pPix;}