diff options
author | jonyrock <ilms@live.ru> | 2014-05-02 22:01:13 +0400 |
---|---|---|
committer | jonyrock <ilms@live.ru> | 2014-05-02 22:01:13 +0400 |
commit | 53b2879e1703062f1f87b6cfc3ba140aa019fde4 (patch) | |
tree | ecb0bf454825649076db1b99d614f353cff0e4a0 /modules/gdscript/gd_script.cpp | |
parent | 209eaf6fa06eba8a05e5222bdab418cd0f20c91c (diff) | |
parent | f1d3b30a45f31c217929ec86b010736feed1714c (diff) |
Merge remote-tracking branch 'upstream/master' into pair_symbols_tool
Diffstat (limited to 'modules/gdscript/gd_script.cpp')
-rw-r--r-- | modules/gdscript/gd_script.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/modules/gdscript/gd_script.cpp b/modules/gdscript/gd_script.cpp index 299a7d3e54..65b10399f8 100644 --- a/modules/gdscript/gd_script.cpp +++ b/modules/gdscript/gd_script.cpp @@ -76,16 +76,21 @@ Variant *GDFunction::_get_variant(int p_address,GDInstance *p_instance,GDScript case ADDR_TYPE_CLASS_CONSTANT: { //todo change to index! - GDScript *s=p_script; + GDScript *o=p_script; ERR_FAIL_INDEX_V(address,_global_names_count,NULL); const StringName *sn = &_global_names_ptr[address]; - while(s) { - Map<StringName,Variant>::Element *E=s->constants.find(*sn); - if (E) { - return &E->get(); + while(o) { + GDScript *s=o; + while(s) { + + Map<StringName,Variant>::Element *E=s->constants.find(*sn); + if (E) { + return &E->get(); + } + s=s->_base; } - s=s->_base; + o=o->_owner; } |