Explorar o código

Fix heap-use-after-free when exiting editor after editing TileSet

Haoyu Qiu %!s(int64=2) %!d(string=hai) anos
pai
achega
480d9d10ed
Modificáronse 1 ficheiros con 9 adicións e 0 borrados
  1. 9 0
      editor/plugins/tiles/tile_set_atlas_source_editor.cpp

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

@@ -2345,6 +2345,15 @@ void TileSetAtlasSourceEditor::_notification(int p_what) {
 				tile_set_changed_needs_update = false;
 				tile_set_changed_needs_update = false;
 			}
 			}
 		} break;
 		} break;
+
+		case NOTIFICATION_EXIT_TREE: {
+			for (KeyValue<String, TileDataEditor *> &E : tile_data_editors) {
+				Control *toolbar = E.value->get_toolbar();
+				if (toolbar->get_parent() == tool_settings_tile_data_toolbar_container) {
+					tool_settings_tile_data_toolbar_container->remove_child(toolbar);
+				}
+			}
+		} break;
 	}
 	}
 }
 }