Prechádzať zdrojové kódy

Avoid unnecessary Dictionary conversions in GDScriptInstance::validate_property

Updated GDScriptInstance::validate_property to only convert PropertyInfo to Dictionary if _validate_property function is found.
aaronp64 10 mesiacov pred
rodič
commit
aa1d469ffb
1 zmenil súbory, kde vykonal 3 pridanie a 3 odobranie
  1. 3 3
      modules/gdscript/gdscript.cpp

+ 3 - 3
modules/gdscript/gdscript.cpp

@@ -1835,14 +1835,14 @@ Variant::Type GDScriptInstance::get_property_type(const StringName &p_name, bool
 }
 
 void GDScriptInstance::validate_property(PropertyInfo &p_property) const {
-	Variant property = (Dictionary)p_property;
-	const Variant *args[1] = { &property };
-
 	const GDScript *sptr = script.ptr();
 	while (sptr) {
 		if (likely(sptr->valid)) {
 			HashMap<StringName, GDScriptFunction *>::ConstIterator E = sptr->member_functions.find(GDScriptLanguage::get_singleton()->strings._validate_property);
 			if (E) {
+				Variant property = (Dictionary)p_property;
+				const Variant *args[1] = { &property };
+
 				Callable::CallError err;
 				Variant ret = E->value->call(const_cast<GDScriptInstance *>(this), args, 1, err);
 				if (err.error == Callable::CallError::CALL_OK) {