spirv/cfg: Refactor the function parameter loop a bit
authorJason Ekstrand <jason@jlekstrand.net>
Fri, 8 Dec 2017 07:42:15 +0000 (23:42 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 12 Dec 2017 15:34:46 +0000 (07:34 -0800)
src/compiler/spirv/vtn_cfg.c

index 182251358c93b2784257a401e066414b9985400a..9f3f55f07dce53eb333335aa9b47575d8d8cc633 100644 (file)
@@ -51,16 +51,20 @@ vtn_cfg_handle_prepass_instruction(struct vtn_builder *b, SpvOp opcode,
 
       func->num_params = func_type->length;
       func->params = ralloc_array(b->shader, nir_parameter, func->num_params);
-      for (unsigned i = 0; i < func->num_params; i++) {
+      unsigned np = 0;
+      for (unsigned i = 0; i < func_type->length; i++) {
          if (func_type->params[i]->base_type == vtn_base_type_pointer &&
              func_type->params[i]->type == NULL) {
-            func->params[i].type = func_type->params[i]->deref->type;
-            func->params[i].param_type = nir_parameter_inout;
+            func->params[np].type = func_type->params[i]->deref->type;
+            func->params[np].param_type = nir_parameter_inout;
+            np++;
          } else {
-            func->params[i].type = func_type->params[i]->type;
-            func->params[i].param_type = nir_parameter_in;
+            func->params[np].type = func_type->params[i]->type;
+            func->params[np].param_type = nir_parameter_in;
+            np++;
          }
       }
+      assert(np == func->num_params);
 
       func->return_type = func_type->return_type->type;