Remember allocated offscreenImages memory for freeing it in CloseScreen()

Signed-off-by: Zdenek Kabelac <zkabelac@redhat.com>
[anholt: renamed the member to match the variable name]
Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Zdenek Kabelac 2009-04-21 18:58:23 -07:00 committed by Eric Anholt
parent 701c6bef14
commit ceb3a2eaf9
3 changed files with 5 additions and 1 deletions

View File

@ -431,6 +431,7 @@ typedef struct _I830Rec {
#ifdef I830_XV
/* For Xvideo */
i830_memory *overlay_regs;
void *offscreenImages; /**< remembered memory block for release */
#endif
#ifdef INTEL_XVMC
/* For XvMC */

View File

@ -3700,6 +3700,8 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
#ifdef I830_XV
i965_free_video(pScrn);
free(pI830->offscreenImages);
pI830->offscreenImages = NULL;
#endif
dri_bufmgr_destroy(pI830->bufmgr);

View File

@ -2886,11 +2886,12 @@ I830InitOffscreenImages(ScreenPtr pScreen)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
I830Ptr pI830 = I830PTR(pScrn);
/* need to free this someplace */
if (!(offscreenImages = xalloc(sizeof(XF86OffscreenImageRec)))) {
return;
}
pI830->offscreenImages = offscreenImages;
offscreenImages[0].image = &Images[0];
offscreenImages[0].flags = VIDEO_OVERLAID_IMAGES /*| VIDEO_CLIP_TO_VIEWPORT*/;
offscreenImages[0].alloc_surface = I830AllocateSurface;