diff options
author | Yuri Roubinsky <chaosus89@gmail.com> | 2022-01-13 14:39:35 +0300 |
---|---|---|
committer | Yuri Roubinsky <chaosus89@gmail.com> | 2022-01-13 15:12:35 +0300 |
commit | b0356bcb72a4647699c8e9c7ab1370f563ef81bc (patch) | |
tree | 25c37763616334c7c05f199bff7089d5498bf9b6 | |
parent | dbab0a94877004d18f1cf51f11c56c3f9861fb12 (diff) |
Prevent redefinition of main functions in shader
-rw-r--r-- | servers/rendering/shader_language.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp index adbcdedacc..c4d9ba4260 100644 --- a/servers/rendering/shader_language.cpp +++ b/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); |