Browse Source

Prevent redefinition of main functions in shader

Yuri Roubinsky 3 years ago
parent
commit
b0356bcb72
1 changed files with 7 additions and 0 deletions
  1. 7 0
      servers/rendering/shader_language.cpp

+ 7 - 0
servers/rendering/shader_language.cpp

@@ -8774,6 +8774,13 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
 					}
 				}
 
+				for (int i = 0; i < shader->functions.size(); i++) {
+					if (!shader->functions[i].callable && shader->functions[i].name == name) {
+						_set_error("Redefinition of '" + String(name) + "'");
+						return ERR_PARSE_ERROR;
+					}
+				}
+
 				ShaderNode::Function function;
 
 				function.callable = !p_functions.has(name);