From 19e0a1ec9dce4d0a550a944bbd77f0db427dec78 Mon Sep 17 00:00:00 2001 From: Yuri Roubinsky Date: Mon, 1 Mar 2021 09:08:44 +0300 Subject: Fix parsing hexadecimal (lowercase `e`,`f`) in shaders --- servers/rendering/shader_language.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'servers/rendering') 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; -- cgit v1.2.3