summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTilman Sauerbeck <[email protected]>2010-09-09 14:57:32 +0200
committerTilman Sauerbeck <[email protected]>2010-09-10 13:09:33 +0200
commit56a80535b61a274de7bb88767e5ccd53f781e892 (patch)
tree9347ee5e49afc2cc41c705a3175a48bffce14578
parentac2bddb9f2c40effb16db321db0177decea81a92 (diff)
r600g: Fixed a bo leak in the error path of radeon_ctx_set_bo_new().
Signed-off-by: Tilman Sauerbeck <[email protected]>
-rw-r--r--src/gallium/winsys/r600/drm/radeon_ctx.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/gallium/winsys/r600/drm/radeon_ctx.c b/src/gallium/winsys/r600/drm/radeon_ctx.c
index bd0916aeb0b..a3ce7df7562 100644
--- a/src/gallium/winsys/r600/drm/radeon_ctx.c
+++ b/src/gallium/winsys/r600/drm/radeon_ctx.c
@@ -34,7 +34,7 @@ static int radeon_ctx_set_bo_new(struct radeon_ctx *ctx, struct radeon_bo *bo)
{
if (ctx->nbo >= RADEON_CTX_MAX_PM4)
return -EBUSY;
- ctx->bo[ctx->nbo] = bo;
+ ctx->bo[ctx->nbo] = radeon_bo_incref(ctx->radeon, bo);
ctx->nbo++;
return 0;
}
@@ -137,7 +137,6 @@ static int radeon_ctx_state_bo(struct radeon_ctx *ctx, struct radeon_state *stat
break;
}
if (j == ctx->nbo) {
- radeon_bo_incref(ctx->radeon, state->bo[i]);
r = radeon_ctx_set_bo_new(ctx, state->bo[i]);
if (r)
return r;