[Mesa-dev] [PATCH] svga: replace gotos with conditionals in array drawing code

Brian Paul brianp at vmware.com
Mon Aug 21 18:55:53 UTC 2017


No Piglit regressions.
---
 src/gallium/drivers/svga/svga_draw_arrays.c   | 36 +++++++++++++--------------
 src/gallium/drivers/svga/svga_draw_elements.c | 28 ++++++++++-----------
 2 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_draw_arrays.c b/src/gallium/drivers/svga/svga_draw_arrays.c
index b968fb0..19d5e50 100644
--- a/src/gallium/drivers/svga/svga_draw_arrays.c
+++ b/src/gallium/drivers/svga/svga_draw_arrays.c
@@ -286,25 +286,25 @@ svga_hwtnl_draw_arrays(struct svga_hwtnl *hwtnl,
                                          gen_type,
                                          gen_nr,
                                          gen_size, gen_func, &gen_buf);
-      if (ret != PIPE_OK)
-         goto done;
-
-      pipe_debug_message(&svga->debug.callback, PERF_INFO,
-                         "generating temporary index buffer for drawing %s",
-                         u_prim_name(prim));
-
-      ret = svga_hwtnl_simple_draw_range_elements(hwtnl,
-                                                  gen_buf,
-                                                  gen_size,
-                                                  start,
-                                                  0,
-                                                  count - 1,
-                                                  gen_prim, 0, gen_nr,
-                                                  start_instance,
-                                                  instance_count);
-done:
-      if (gen_buf)
+      if (ret == PIPE_OK) {
+         pipe_debug_message(&svga->debug.callback, PERF_INFO,
+                            "generating temporary index buffer for drawing %s",
+                            u_prim_name(prim));
+
+         ret = svga_hwtnl_simple_draw_range_elements(hwtnl,
+                                                     gen_buf,
+                                                     gen_size,
+                                                     start,
+                                                     0,
+                                                     count - 1,
+                                                     gen_prim, 0, gen_nr,
+                                                     start_instance,
+                                                     instance_count);
+      }
+
+      if (gen_buf) {
          pipe_resource_reference(&gen_buf, NULL);
+      }
    }
 
    SVGA_STATS_TIME_POP(svga_sws(svga));
diff --git a/src/gallium/drivers/svga/svga_draw_elements.c b/src/gallium/drivers/svga/svga_draw_elements.c
index f9bb136..b1db871 100644
--- a/src/gallium/drivers/svga/svga_draw_elements.c
+++ b/src/gallium/drivers/svga/svga_draw_elements.c
@@ -242,21 +242,21 @@ svga_hwtnl_draw_range_elements(struct svga_hwtnl *hwtnl,
                               prim, gen_prim,
                               count, gen_nr, gen_size,
                               gen_func, &gen_buf);
-      if (ret != PIPE_OK)
-         goto done;
-
-      ret = svga_hwtnl_simple_draw_range_elements(hwtnl,
-                                                  gen_buf,
-                                                  gen_size,
-                                                  index_bias,
-                                                  min_index,
-                                                  max_index,
-                                                  gen_prim, 0, gen_nr,
-                                                  start_instance,
-                                                  instance_count);
-done:
-      if (gen_buf)
+      if (ret == PIPE_OK) {
+         ret = svga_hwtnl_simple_draw_range_elements(hwtnl,
+                                                     gen_buf,
+                                                     gen_size,
+                                                     index_bias,
+                                                     min_index,
+                                                     max_index,
+                                                     gen_prim, 0, gen_nr,
+                                                     start_instance,
+                                                     instance_count);
+      }
+
+      if (gen_buf) {
          pipe_resource_reference(&gen_buf, NULL);
+      }
    }
 
    SVGA_STATS_TIME_POP(svga_sws(hwtnl->svga));
-- 
1.9.1



More information about the mesa-dev mailing list