浏览代码

Fix shader crashing when attempting to access length() at global space

Yuri Roubinsky 3 年之前
父节点
当前提交
b5c5c2d52b
共有 1 个文件被更改,包括 6 次插入2 次删除
  1. 6 2
      servers/visual/shader_language.cpp

+ 6 - 2
servers/visual/shader_language.cpp

@@ -3626,9 +3626,13 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
 						}
 						}
 					} else if (tk.type == TK_PERIOD) {
 					} else if (tk.type == TK_PERIOD) {
 						completion_class = TAG_ARRAY;
 						completion_class = TAG_ARRAY;
-						p_block->block_tag = SubClassTag::TAG_ARRAY;
+						if (p_block != nullptr) {
+							p_block->block_tag = SubClassTag::TAG_ARRAY;
+						}
 						call_expression = _parse_and_reduce_expression(p_block, p_builtin_types);
 						call_expression = _parse_and_reduce_expression(p_block, p_builtin_types);
-						p_block->block_tag = SubClassTag::TAG_GLOBAL;
+						if (p_block != nullptr) {
+							p_block->block_tag = SubClassTag::TAG_GLOBAL;
+						}
 						if (!call_expression) {
 						if (!call_expression) {
 							return nullptr;
 							return nullptr;
 						}
 						}