diff options
Diffstat (limited to 'src/mesa/shader/slang')
-rw-r--r-- | src/mesa/shader/slang/slang_compile.c | 6 | ||||
-rw-r--r-- | src/mesa/shader/slang/slang_compile_variable.c | 7 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/mesa/shader/slang/slang_compile.c b/src/mesa/shader/slang/slang_compile.c index 93c7fb0cdbf..c49ab4a68dc 100644 --- a/src/mesa/shader/slang/slang_compile.c +++ b/src/mesa/shader/slang/slang_compile.c @@ -439,8 +439,6 @@ parse_struct_field(slang_parse_ctx * C, slang_output_ctx * O, slang_info_log_memory(C->L); return 0; } - if (!slang_variable_construct(var)) - return 0; if (!parse_struct_field_var(C, &o, var, sp)) return 0; } @@ -1478,8 +1476,6 @@ parse_function_prototype(slang_parse_ctx * C, slang_output_ctx * O, slang_info_log_memory(C->L); return 0; } - if (!slang_variable_construct(p)) - return 0; if (!parse_parameter_declaration(C, O, p)) return 0; } @@ -1654,8 +1650,6 @@ parse_init_declarator(slang_parse_ctx * C, slang_output_ctx * O, slang_info_log_memory(C->L); return 0; } - if (!slang_variable_construct(var)) - return 0; /* copy the declarator qualifier type, parse the identifier */ var->global = C->global_scope; diff --git a/src/mesa/shader/slang/slang_compile_variable.c b/src/mesa/shader/slang/slang_compile_variable.c index a37deddff10..a8a2d6aa6a0 100644 --- a/src/mesa/shader/slang/slang_compile_variable.c +++ b/src/mesa/shader/slang/slang_compile_variable.c @@ -184,7 +184,7 @@ slang_variable_scope_copy(slang_variable_scope * x, /** * Grow the variable list by one. - * \return pointer to space for the new variable. + * \return pointer to space for the new variable (will be initialized) */ slang_variable * slang_variable_scope_grow(slang_variable_scope *scope) @@ -196,7 +196,12 @@ slang_variable_scope_grow(slang_variable_scope *scope) (n + 1) * sizeof(slang_variable)); if (!scope->variables) return NULL; + scope->num_variables++; + + if (!slang_variable_construct(scope->variables + n)) + return NULL; + return scope->variables + n; } |