Browse Source

Fix heap-use-after-free in Import Defaults Editor

Michael Alexsander 4 years ago
parent
commit
f2ad7c5f12

+ 6 - 1
editor/import_defaults_editor.cpp

@@ -69,6 +69,12 @@ protected:
 	}
 };
 
+void ImportDefaultsEditor::_notification(int p_what) {
+	if (p_what == NOTIFICATION_PREDELETE) {
+		inspector->edit(nullptr);
+	}
+}
+
 void ImportDefaultsEditor::_reset() {
 	if (settings->importer.is_valid()) {
 		settings->values = settings->default_values;
@@ -206,6 +212,5 @@ ImportDefaultsEditor::ImportDefaultsEditor() {
 }
 
 ImportDefaultsEditor::~ImportDefaultsEditor() {
-	inspector->edit(nullptr);
 	memdelete(settings);
 }

+ 1 - 0
editor/import_defaults_editor.h

@@ -62,6 +62,7 @@ class ImportDefaultsEditor : public VBoxContainer {
 	void _save();
 
 protected:
+	void _notification(int p_what);
 	static void _bind_methods();
 
 public:

+ 0 - 3
editor/shader_globals_editor.cpp

@@ -483,8 +483,5 @@ ShaderGlobalsEditor::ShaderGlobalsEditor() {
 }
 
 ShaderGlobalsEditor::~ShaderGlobalsEditor() {
-	if (is_visible_in_tree()) {
-		inspector->edit(nullptr);
-	}
 	memdelete(interface);
 }