[Mesa-dev] [PATCH 3/3] freedreno: little clean up in fd_create_surface

Serge Martin edb+mesa at sigluy.net
Sun Dec 6 06:32:17 PST 2015


in order to avoid returing invalid adress if CALLOC_STRUCT return NULL.
---
 src/gallium/drivers/freedreno/freedreno_surface.c | 31 ++++++++++++-----------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/src/gallium/drivers/freedreno/freedreno_surface.c b/src/gallium/drivers/freedreno/freedreno_surface.c
index 70c44eb..9043393 100644
--- a/src/gallium/drivers/freedreno/freedreno_surface.c
+++ b/src/gallium/drivers/freedreno/freedreno_surface.c
@@ -41,27 +41,28 @@ fd_create_surface(struct pipe_context *pctx,
 //	struct fd_resource* tex = fd_resource(ptex);
 	struct fd_surface* surface = CALLOC_STRUCT(fd_surface);
 
+	if (!surface)
+		return NULL;
+
 	debug_assert(ptex->target != PIPE_BUFFER);
 	debug_assert(surf_tmpl->u.tex.first_layer == surf_tmpl->u.tex.last_layer);
 
-	if (surface) {
-		struct pipe_surface *psurf = &surface->base;
-		unsigned level = surf_tmpl->u.tex.level;
+	struct pipe_surface *psurf = &surface->base;
+	unsigned level = surf_tmpl->u.tex.level;
 
-		pipe_reference_init(&psurf->reference, 1);
-		pipe_resource_reference(&psurf->texture, ptex);
+	pipe_reference_init(&psurf->reference, 1);
+	pipe_resource_reference(&psurf->texture, ptex);
 
-		psurf->context = pctx;
-		psurf->format = surf_tmpl->format;
-		psurf->width = u_minify(ptex->width0, level);
-		psurf->height = u_minify(ptex->height0, level);
-		psurf->u.tex.level = level;
-		psurf->u.tex.first_layer = surf_tmpl->u.tex.first_layer;
-		psurf->u.tex.last_layer = surf_tmpl->u.tex.last_layer;
+	psurf->context = pctx;
+	psurf->format = surf_tmpl->format;
+	psurf->width = u_minify(ptex->width0, level);
+	psurf->height = u_minify(ptex->height0, level);
+	psurf->u.tex.level = level;
+	psurf->u.tex.first_layer = surf_tmpl->u.tex.first_layer;
+	psurf->u.tex.last_layer = surf_tmpl->u.tex.last_layer;
 
-		// TODO
-		DBG("TODO: %ux%u", psurf->width, psurf->height);
-	}
+	// TODO
+	DBG("TODO: %ux%u", psurf->width, psurf->height);
 
 	return &surface->base;
 }
-- 
2.1.0



More information about the mesa-dev mailing list