st/vdpau: fix two small memory leaks

Signed-off-by: Christian König <deathsimple@vodafone.de>
This commit is contained in:
Christian König 2012-03-07 14:51:46 +01:00
parent 2e5f3cdca5
commit 9a3c2776ac
2 changed files with 6 additions and 2 deletions

View file

@ -292,8 +292,8 @@ vlVdpResolveDelayedRendering(vlVdpDevice *dev, struct pipe_surface *surface, str
struct pipe_sampler_view sv_templ;
vlVdpDefaultSamplerViewTemplate(&sv_templ, res);
pipe_sampler_view_reference(&vlsurface->sampler_view,
dev->context->create_sampler_view(dev->context, res, &sv_templ));
pipe_sampler_view_reference(&vlsurface->sampler_view, NULL);
vlsurface->sampler_view = dev->context->create_sampler_view(dev->context, res, &sv_templ);
}
return;

View file

@ -133,16 +133,20 @@ VdpStatus
vlVdpOutputSurfaceDestroy(VdpOutputSurface surface)
{
vlVdpOutputSurface *vlsurface;
struct pipe_context *pipe;
vlsurface = vlGetDataHTAB(surface);
if (!vlsurface)
return VDP_STATUS_INVALID_HANDLE;
pipe = vlsurface->device->context;
pipe_mutex_lock(vlsurface->device->mutex);
vlVdpResolveDelayedRendering(vlsurface->device, NULL, NULL);
pipe_surface_reference(&vlsurface->surface, NULL);
pipe_sampler_view_reference(&vlsurface->sampler_view, NULL);
pipe->screen->fence_reference(pipe->screen, &vlsurface->fence, NULL);
vl_compositor_cleanup_state(&vlsurface->cstate);
pipe_mutex_unlock(vlsurface->device->mutex);