r600g: Fixed a bo leak in r600_texture_from_handle().

We would leak bo if the argument check failed.

Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
This commit is contained in:
Tilman Sauerbeck 2010-09-09 14:03:46 +02:00
parent ae23d425c2
commit ac2bddb9f2

View file

@ -199,11 +199,6 @@ struct pipe_resource *r600_texture_from_handle(struct pipe_screen *screen,
struct r600_resource *resource;
struct radeon_bo *bo = NULL;
bo = radeon_bo(rw, whandle->handle, 0, 0, NULL);
if (bo == NULL) {
return NULL;
}
/* Support only 2D textures without mipmaps */
if ((templ->target != PIPE_TEXTURE_2D && templ->target != PIPE_TEXTURE_RECT) ||
templ->depth0 != 1 || templ->last_level != 0)
@ -213,6 +208,12 @@ struct pipe_resource *r600_texture_from_handle(struct pipe_screen *screen,
if (rtex == NULL)
return NULL;
bo = radeon_bo(rw, whandle->handle, 0, 0, NULL);
if (bo == NULL) {
FREE(rtex);
return NULL;
}
resource = &rtex->resource;
resource->base.b = *templ;
resource->base.vtbl = &r600_texture_vtbl;