diff --git a/repos/gems/src/server/wm/main.cc b/repos/gems/src/server/wm/main.cc index b9d81922b8..be653892eb 100644 --- a/repos/gems/src/server/wm/main.cc +++ b/repos/gems/src/server/wm/main.cc @@ -70,6 +70,8 @@ struct Wm::Main { try { focus_rom.update(); + if (!focus_rom.is_valid()) + return; unsigned long win_id = 0; @@ -94,6 +96,8 @@ struct Wm::Main { try { resize_request_rom.update(); + if (!resize_request_rom.is_valid()) + return; char const * const node_type = "window"; diff --git a/repos/os/src/app/status_bar/main.cc b/repos/os/src/app/status_bar/main.cc index 761dc50ff4..b7e70a4d2a 100644 --- a/repos/os/src/app/status_bar/main.cc +++ b/repos/os/src/app/status_bar/main.cc @@ -228,6 +228,8 @@ void Main::handle_focus(unsigned) { /* fetch new content of the focus ROM module */ focus_ds.update(); + if (!focus_ds.is_valid()) + return; /* reset status-bar properties */ label = Label(); diff --git a/repos/os/src/server/rom_filter/input_rom_registry.h b/repos/os/src/server/rom_filter/input_rom_registry.h index 046580efc8..5b699d2429 100644 --- a/repos/os/src/server/rom_filter/input_rom_registry.h +++ b/repos/os/src/server/rom_filter/input_rom_registry.h @@ -77,6 +77,8 @@ class Rom_filter::Input_rom_registry void _handle_rom_changed(unsigned) { _rom_ds.update(); + if (!_rom_ds.is_valid()) + return; try { _top_level = Xml_node(_rom_ds.local_addr());