bevy/crates
Chris Russell 2d66099f3d
Fix access checks for DeferredWorld as SystemParam. (#17616)
# Objective

Prevent unsound uses of `DeferredWorld` as a `SystemParam`. It is
currently unsound because it does not check for existing access, and
because it incorrectly registers filtered access.

## Solution

Have `DeferredWorld` panic if a previous parameter has conflicting
access.

Have `DeferredWorld` update `archetype_component_access` so that the
multi-threaded executor sees the access.

Fix `FilteredAccessSet::read_all()` and `write_all()` to correctly add a
`FilteredAccess` with no filter so that `Query` is able to detect the
conflicts.

Remove redundant `read_all()` call, since `write_all()` already declares
read access.

Remove unnecessary `set_has_deferred()` call, since `<DeferredWorld as
SystemParam>::apply_deferred()` does nothing. Previously we were
inserting unnecessary `apply_deferred` systems in the schedule.

## Testing

Added unit tests for systems where `DeferredWorld` conflicts with a
`Query` in the same system.
2025-02-03 21:58:07 +00:00
..
bevy_a11y Add no_std Support to bevy_a11y (#17505) 2025-01-23 03:52:47 +00:00
bevy_animation Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_app Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_asset Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_audio Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
bevy_color Fixes #17508: bevy_color::Color constructor docs get docs matching underlying constructor (#17601) 2025-01-29 18:21:23 +00:00
bevy_core_pipeline Fix calculation of skybox rotation (#17476) 2025-01-28 05:27:22 +00:00
bevy_derive Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_dev_tools Smarter testbeds (#17573) 2025-01-31 22:38:39 +00:00
bevy_diagnostic Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_dylib Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_ecs Fix access checks for DeferredWorld as SystemParam. (#17616) 2025-02-03 21:58:07 +00:00
bevy_encase_derive Bump Version after Release (#17176) 2025-01-06 00:04:44 +00:00
bevy_gilrs Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_gizmos Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_gltf Fix Maya-exported rigs by not trying to topologically sort glTF nodes. (#17641) 2025-02-02 13:53:55 +00:00
bevy_image Image::get_color_at and Image::set_color_at: Support 16-bit float values (#17550) 2025-01-31 00:36:11 +00:00
bevy_input added Hash to MouseScrollUnit; (#17538) 2025-01-26 22:24:50 +00:00
bevy_input_focus Refactored ComponentHook Parameters into HookContext (#17503) 2025-01-23 02:45:24 +00:00
bevy_internal Add support for specular tints and maps per the KHR_materials_specular glTF extension. (#14069) 2025-01-26 20:38:46 +00:00
bevy_log Move Resource trait to its own file (#17469) 2025-01-21 19:47:08 +00:00
bevy_macro_utils Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_math feat: impl Ease for Isometry[2/3]d (#17545) 2025-02-02 15:07:35 +00:00
bevy_mesh Implementing Reflect on *MeshBuilder types (#17600) 2025-02-03 21:53:51 +00:00
bevy_mikktspace Move #![warn(clippy::allow_attributes, clippy::allow_attributes_without_reason)] to the workspace Cargo.toml (#17374) 2025-01-15 01:14:58 +00:00
bevy_pbr Atmosphere LUT parameterization improvements (#17555) 2025-02-03 21:52:11 +00:00
bevy_picking Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_platform_support Improve ergonomics of platform_support's Instant (#17577) 2025-02-02 15:50:48 +00:00
bevy_ptr Update safety docs for Ptr::assert_unique (#17394) 2025-01-16 03:25:19 +00:00
bevy_reflect Remove unnecessary PartialReflect bound on DeserializeWithRegistry (#17560) 2025-01-29 17:36:39 +00:00
bevy_remote Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_render Implementing Reflect on *MeshBuilder types (#17600) 2025-02-03 21:53:51 +00:00
bevy_scene Add simple Disabled marker (#17514) 2025-02-02 21:42:25 +00:00
bevy_sprite Move sprite batches to resource (#17636) 2025-02-02 22:08:57 +00:00
bevy_state Fix link to states example (#17595) 2025-01-29 21:44:55 +00:00
bevy_tasks Move spin to bevy_platform_support out of other crates (#17470) 2025-01-23 05:27:02 +00:00
bevy_text Improve TextSpan docs (#17415) 2025-02-03 21:36:52 +00:00
bevy_time Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_transform Parent -> ChildOf (#17427) 2025-01-20 22:13:29 +00:00
bevy_ui Improve TextSpan docs (#17415) 2025-02-03 21:36:52 +00:00
bevy_utils Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
bevy_window Move spin to bevy_platform_support out of other crates (#17470) 2025-01-23 05:27:02 +00:00
bevy_winit Fix cursor hotspot out of bounds when flipping (#17571) 2025-02-02 18:22:34 +00:00