diff options
author | Yuri Roubinsky <chaosus89@gmail.com> | 2021-02-21 13:45:01 +0300 |
---|---|---|
committer | Yuri Roubinsky <chaosus89@gmail.com> | 2021-02-21 13:47:09 +0300 |
commit | 571f4396ea7512b792f92d46fb528ba3909641d2 (patch) | |
tree | 1d551f523b2f262272df29640aebce93613cfdeb /servers/rendering/shader_language.cpp | |
parent | 3bb628d8fe26abad258a222a5e22b644e2b73a01 (diff) | |
download | redot-engine-571f4396ea7512b792f92d46fb528ba3909641d2.tar.gz |
Prevents shader crash if two struct with the same name are declared
Diffstat (limited to 'servers/rendering/shader_language.cpp')
-rw-r--r-- | servers/rendering/shader_language.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp index 1f0cf5959f..cb98a71e86 100644 --- a/servers/rendering/shader_language.cpp +++ b/servers/rendering/shader_language.cpp @@ -6135,6 +6135,10 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct tk = _get_token(); if (tk.type == TK_IDENTIFIER) { st.name = tk.text; + if (shader->structs.has(st.name)) { + _set_error("Redefinition of '" + String(st.name) + "'"); + return ERR_PARSE_ERROR; + } tk = _get_token(); if (tk.type != TK_CURLY_BRACKET_OPEN) { _set_error("Expected '{'"); |