llvmpipe: move lp_jit_screen_init() call after allocation of screen object
authorBrian Paul <brianp@vmware.com>
Mon, 29 Sep 2014 22:08:55 +0000 (16:08 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 30 Sep 2014 18:09:14 +0000 (12:09 -0600)
The screen argument isn't actually used by lp_jit_screen_init() at this
time, but let's move the call so that we pass a valid pointer.

v2: don't leak screen if lp_jit_screen_init() fails.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/gallium/drivers/llvmpipe/lp_screen.c

index 302532229104549117b2fbae41bfbc76b3e8bcf4..a264f990d02baf1381e7f9d42841dab7886d7d7d 100644 (file)
@@ -557,9 +557,6 @@ llvmpipe_create_screen(struct sw_winsys *winsys)
        return NULL;
 #endif
 
-   if (!lp_jit_screen_init(screen))
-      return NULL;
-
 #ifdef DEBUG
    LP_DEBUG = debug_get_flags_option("LP_DEBUG", lp_debug_flags, 0 );
 #endif
@@ -570,6 +567,11 @@ llvmpipe_create_screen(struct sw_winsys *winsys)
    if (!screen)
       return NULL;
 
+   if (!lp_jit_screen_init(screen)) {
+      FREE(screen);
+      return NULL;
+   }
+
    screen->winsys = winsys;
 
    screen->base.destroy = llvmpipe_destroy_screen;