summaryrefslogtreecommitdiffstats
path: root/servers/rendering/shader_language.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2021-03-01 09:17:08 +0100
committerGitHub <noreply@github.com>2021-03-01 09:17:08 +0100
commitfb8cfc442d5bfb8f14e98006a734cdf551a0f2b1 (patch)
tree66ffe061c69c390cbc4dd6dfe022addc3504cc0a /servers/rendering/shader_language.cpp
parent75ac36f9393036a10612838b95227391c825695e (diff)
parent19e0a1ec9dce4d0a550a944bbd77f0db427dec78 (diff)
downloadredot-engine-fb8cfc442d5bfb8f14e98006a734cdf551a0f2b1.tar.gz
Merge pull request #46543 from Chaosus/shader_fix_hex
Fix parsing hexadecimal (lowercase `e`,`f`) in shaders
Diffstat (limited to 'servers/rendering/shader_language.cpp')
-rw-r--r--servers/rendering/shader_language.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp
index cb98a71e86..e5978e4f1b 100644
--- a/servers/rendering/shader_language.cpp
+++ b/servers/rendering/shader_language.cpp
@@ -558,13 +558,13 @@ ShaderLanguage::Token ShaderLanguage::_get_token() {
return _make_token(TK_ERROR, "Invalid numeric constant");
}
hexa_found = true;
- } else if (GETCHAR(i) == 'e') {
- if (hexa_found || exponent_found || float_suffix_found) {
+ } else if (GETCHAR(i) == 'e' && !hexa_found) {
+ if (exponent_found || float_suffix_found) {
return _make_token(TK_ERROR, "Invalid numeric constant");
}
exponent_found = true;
- } else if (GETCHAR(i) == 'f') {
- if (hexa_found || exponent_found) {
+ } else if (GETCHAR(i) == 'f' && !hexa_found) {
+ if (exponent_found) {
return _make_token(TK_ERROR, "Invalid numeric constant");
}
float_suffix_found = true;