浏览代码

Merge pull request #35224 from ChibiDenDen/constant_lookup_through_subclass_instance

Fix constant access in base class through subclass instance
Rémi Verschelde 5 年之前
父节点
当前提交
ba7aca4199
共有 1 个文件被更改,包括 7 次插入7 次删除
  1. 7 7
      modules/gdscript/gdscript_function.cpp

+ 7 - 7
modules/gdscript/gdscript_function.cpp

@@ -67,23 +67,23 @@ Variant *GDScriptFunction::_get_variant(int p_address, GDScriptInstance *p_insta
 		case ADDR_TYPE_CLASS_CONSTANT: {
 
 			//todo change to index!
-			GDScript *o = p_script;
+			GDScript *s = p_script;
 #ifdef DEBUG_ENABLED
 			ERR_FAIL_INDEX_V(address, _global_names_count, NULL);
 #endif
 			const StringName *sn = &_global_names_ptr[address];
 
-			while (o) {
-				GDScript *s = o;
-				while (s) {
+			while (s) {
+				GDScript *o = s;
+				while (o) {
 
-					Map<StringName, Variant>::Element *E = s->constants.find(*sn);
+					Map<StringName, Variant>::Element *E = o->constants.find(*sn);
 					if (E) {
 						return &E->get();
 					}
-					s = s->_base;
+					o = o->_owner;
 				}
-				o = o->_owner;
+				s = s->_base;
 			}
 
 			ERR_FAIL_V_MSG(NULL, "GDScriptCompiler bug.");