Browse Source

Fix editor crash on overrides for non-existent input mappings.

(cherry picked from commit 57011c89484313dda7f09a330b13198f492a1c44)
Pāvels Nadtočajevs 5 months ago
parent
commit
8813063847
1 changed files with 6 additions and 2 deletions
  1. 6 2
      editor/editor_settings.cpp

+ 6 - 2
editor/editor_settings.cpp

@@ -182,6 +182,11 @@ bool EditorSettings::_get(const StringName &p_name, Variant &r_ret) const {
 	} else if (p_name == "builtin_action_overrides") {
 	} else if (p_name == "builtin_action_overrides") {
 		Array actions_arr;
 		Array actions_arr;
 		for (const KeyValue<String, List<Ref<InputEvent>>> &action_override : builtin_action_overrides) {
 		for (const KeyValue<String, List<Ref<InputEvent>>> &action_override : builtin_action_overrides) {
+			const List<Ref<InputEvent>> *defaults = InputMap::get_singleton()->get_builtins().getptr(action_override.key);
+			if (!defaults) {
+				continue;
+			}
+
 			List<Ref<InputEvent>> events = action_override.value;
 			List<Ref<InputEvent>> events = action_override.value;
 
 
 			Dictionary action_dict;
 			Dictionary action_dict;
@@ -197,8 +202,7 @@ bool EditorSettings::_get(const StringName &p_name, Variant &r_ret) const {
 			}
 			}
 
 
 			Array defaults_arr;
 			Array defaults_arr;
-			List<Ref<InputEvent>> defaults = InputMap::get_singleton()->get_builtins()[action_override.key];
-			for (const Ref<InputEvent> &default_input_event : defaults) {
+			for (const Ref<InputEvent> &default_input_event : *defaults) {
 				if (default_input_event.is_valid()) {
 				if (default_input_event.is_valid()) {
 					defaults_arr.append(default_input_event);
 					defaults_arr.append(default_input_event);
 				}
 				}