summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/sw/wrapper
diff options
context:
space:
mode:
authorJakob Bornecrantz <wallbraker@gmail.com>2010-04-10 13:41:22 +0200
committerJakob Bornecrantz <wallbraker@gmail.com>2010-04-12 01:50:52 +0200
commitcefe2a1dc258e4c1fe75a5cf7c3d6804a616366d (patch)
tree3e41da834b4957799ef71e619f83cc1bffba71cc /src/gallium/winsys/sw/wrapper
parentc81f049794625c6907c884fdb03de8dd1555b11e (diff)
winsys/sw: Fix error paths
Diffstat (limited to 'src/gallium/winsys/sw/wrapper')
-rw-r--r--src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c b/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c
index 9a68d9faff..d4d4270eb8 100644
--- a/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c
+++ b/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c
@@ -262,6 +262,9 @@ wrapper_sw_winsys_warp_pipe_screen(struct pipe_screen *screen)
{
struct wrapper_sw_winsys *wsw = CALLOC_STRUCT(wrapper_sw_winsys);
+ if (!wsw)
+ goto err;
+
wsw->base.displaytarget_create = wsw_dt_create;
wsw->base.displaytarget_from_handle = wsw_dt_from_handle;
wsw->base.displaytarget_map = wsw_dt_map;
@@ -272,11 +275,12 @@ wrapper_sw_winsys_warp_pipe_screen(struct pipe_screen *screen)
wsw->screen = screen;
wsw->pipe = screen->context_create(screen, NULL);
if (!wsw->pipe)
- goto err;
+ goto err_free;
return &wsw->base;
-err:
+err_free:
FREE(wsw);
+err:
return NULL;
}