diff options
author | Zdenek Kabelac <zdenek.kabelac@gmail.com> | 2009-04-21 18:58:23 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-04-21 19:54:21 -0700 |
commit | ceb3a2eaf9090d67e4dfcbed188125108ceab78d (patch) | |
tree | 2a6078c29304e84ba8241768cab419b547a08f3d | |
parent | 701c6bef14b5d464847cc42c5ccb66fdeb157f1a (diff) |
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>
-rw-r--r-- | src/i830.h | 1 | ||||
-rw-r--r-- | src/i830_driver.c | 2 | ||||
-rw-r--r-- | src/i830_video.c | 3 |
3 files changed, 5 insertions, 1 deletions
@@ -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 */ diff --git a/src/i830_driver.c b/src/i830_driver.c index f1ea5115..2249a990 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -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); diff --git a/src/i830_video.c b/src/i830_video.c index a62d7a13..f73c1f7f 100644 --- a/src/i830_video.c +++ b/src/i830_video.c @@ -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; |