Browse Source

Fix Keep/Skip File import selection crash

Added is_valid() and "params" key checks before trying to access ConfigFile's "params" section in ImportDock::_update_options, to handle case where selecting "Keep File" or "Skip File" importer passes in a null ConfigFile.

Fixes #92785
aaronp64 1 year ago
parent
commit
3bf5fa9aea
1 changed files with 9 additions and 7 deletions
  1. 9 7
      editor/import_dock.cpp

+ 9 - 7
editor/import_dock.cpp

@@ -189,13 +189,15 @@ void ImportDock::_update_options(const String &p_path, const Ref<ConfigFile> &p_
 	params->base_options_path = p_path;
 	params->base_options_path = p_path;
 
 
 	HashMap<StringName, Variant> import_options;
 	HashMap<StringName, Variant> import_options;
-	List<String> section_keys;
-	p_config->get_section_keys("params", &section_keys);
-	for (const String &section_key : section_keys) {
-		import_options[section_key] = p_config->get_value("params", section_key);
-	}
-	if (params->importer.is_valid()) {
-		params->importer->handle_compatibility_options(import_options);
+	if (p_config.is_valid() && p_config->has_section("params")) {
+		List<String> section_keys;
+		p_config->get_section_keys("params", &section_keys);
+		for (const String &section_key : section_keys) {
+			import_options[section_key] = p_config->get_value("params", section_key);
+		}
+		if (params->importer.is_valid()) {
+			params->importer->handle_compatibility_options(import_options);
+		}
 	}
 	}
 
 
 	for (const ResourceImporter::ImportOption &E : options) {
 	for (const ResourceImporter::ImportOption &E : options) {