From a5e31e7d36587fb98f8fbe34ba60029cb586f73f Mon Sep 17 00:00:00 2001 From: mara Date: Sat, 27 May 2023 11:02:43 +0000 Subject: [PATCH] Fix intermittent crash due to deleted objects In callbacks and after await, gracefully handle the case where nodes have been deleted since. This seems to happen sometimes at startup of the editor. --- .../main_screen/column_header_manager.gd | 4 ++++ .../typed_cells/cell_editor_resource.gd | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/addons/resources_spreadsheet_view/main_screen/column_header_manager.gd b/addons/resources_spreadsheet_view/main_screen/column_header_manager.gd index 894c76e..e41b2f4 100644 --- a/addons/resources_spreadsheet_view/main_screen/column_header_manager.gd +++ b/addons/resources_spreadsheet_view/main_screen/column_header_manager.gd @@ -86,6 +86,10 @@ func _update_column_sizes(): show() await get_tree().process_frame + # Abort if the node has been deleted since. + if !is_instance_valid(column_headers[0]): + return + get_parent().custom_minimum_size.y = column_headers[0].size.y for i in column_headers.size(): column_headers[i].position.x = grid.get_child(i).position.x diff --git a/addons/resources_spreadsheet_view/typed_cells/cell_editor_resource.gd b/addons/resources_spreadsheet_view/typed_cells/cell_editor_resource.gd index 9a844ae..b372402 100644 --- a/addons/resources_spreadsheet_view/typed_cells/cell_editor_resource.gd +++ b/addons/resources_spreadsheet_view/typed_cells/cell_editor_resource.gd @@ -47,5 +47,7 @@ func is_text(): func _on_preview_loaded(path : String, preview : Texture, thumbnail_preview : Texture, node): - node.get_node("Box/Tex").visible = true - node.get_node("Box/Tex").texture = preview + # Abort if the node has been deleted since. + if is_instance_valid(node): + node.get_node("Box/Tex").visible = true + node.get_node("Box/Tex").texture = preview