radeonsi: don't use malloc in si_generate_gs_copy_shader
authorMarek Olšák <marek.olsak@amd.com>
Sat, 23 Jun 2018 05:39:02 +0000 (01:39 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 29 Jun 2018 02:27:25 +0000 (22:27 -0400)
src/gallium/drivers/radeonsi/si_shader.c

index 74a1855c976ac0390698ed9c9021db3805e6ac3d..c6b91ba5cf3db483a143b7eb85c46dd84209db33 100644 (file)
@@ -5728,20 +5728,14 @@ si_generate_gs_copy_shader(struct si_screen *sscreen,
        struct si_shader_context ctx;
        struct si_shader *shader;
        LLVMBuilderRef builder;
-       struct si_shader_output_values *outputs;
+       struct si_shader_output_values outputs[SI_MAX_VS_OUTPUTS];
        struct tgsi_shader_info *gsinfo = &gs_selector->info;
        int i, r;
 
-       outputs = MALLOC(gsinfo->num_outputs * sizeof(outputs[0]));
-
-       if (!outputs)
-               return NULL;
 
        shader = CALLOC_STRUCT(si_shader);
-       if (!shader) {
-               FREE(outputs);
+       if (!shader)
                return NULL;
-       }
 
        /* We can leave the fence as permanently signaled because the GS copy
         * shader only becomes visible globally after it has been compiled. */
@@ -5860,8 +5854,6 @@ si_generate_gs_copy_shader(struct si_screen *sscreen,
 
        si_llvm_dispose(&ctx);
 
-       FREE(outputs);
-
        if (r != 0) {
                FREE(shader);
                shader = NULL;