freedreno: little clean up in fd_create_surface
authorSerge Martin <edb+mesa@sigluy.net>
Sun, 6 Dec 2015 14:32:17 +0000 (15:32 +0100)
committerRob Clark <robclark@freedesktop.org>
Wed, 9 Dec 2015 22:32:41 +0000 (17:32 -0500)
in order to avoid returing invalid adress if CALLOC_STRUCT return NULL.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/freedreno_surface.c

index 70c44eb79c362e6bee4768f3da2b2b49b7c4dd88..904339343453ae3ff4a117ca42d1498a81f6e531 100644 (file)
@@ -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;
 }