Browse Source

Merge pull request #80607 from lawnjelly/fix_tileset_signal_crash

Fix crash on exit where `TileSet` calls destroyed `TileSetAtlasSourceEditor`
Rémi Verschelde 2 years ago
parent
commit
c2fde9cc1e
1 changed files with 6 additions and 0 deletions
  1. 6 0
      editor/plugins/tiles/tile_set_atlas_source_editor.cpp

+ 6 - 0
editor/plugins/tiles/tile_set_atlas_source_editor.cpp

@@ -2655,6 +2655,12 @@ TileSetAtlasSourceEditor::TileSetAtlasSourceEditor() {
 TileSetAtlasSourceEditor::~TileSetAtlasSourceEditor() {
 	memdelete(tile_proxy_object);
 	memdelete(atlas_source_proxy_object);
+
+	// Remove listener for old objects, so the TileSet doesn't
+	// try to call the destroyed TileSetAtlasSourceEditor.
+	if (tile_set.is_valid()) {
+		tile_set->disconnect_changed(callable_mp(this, &TileSetAtlasSourceEditor::_tile_set_changed));
+	}
 }
 
 ////// EditorPropertyTilePolygon //////