bevy/crates
James Liu 4cd53cc7e1
Clean up pointer use in BundleSpawner/BundleInserter (#12269)
# Objective
Following #10756, we're now using raw pointers in BundleInserter and
BundleSpawner. This is primarily to get around the need to split the
borrow on the World, but it leaves a lot to be desired in terms of
safety guarantees. There's no type level guarantee the code can't
dereference a null pointer, and it's restoring them to borrows fairly
liberally within the associated functions.

## Solution

* Replace the pointers with `NonNull` and a new `bevy_ptr::ConstNonNull`
that only allows conversion back to read-only borrows
* Remove the closure to avoid potentially aliasing through the closure
by restructuring the match expression.
* Move all conversions back into borrows as far up as possible to ensure
that the borrow checker is at least locally followed.
2024-03-06 05:52:18 +00:00
..
bevy_a11y Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_animation Replace bevy_log's tracing reexport with bevy_utils' (#12254) 2024-03-02 18:38:04 +00:00
bevy_app Use immutable key for HashMap and HashSet (#12086) 2024-02-26 16:27:40 +00:00
bevy_asset bevy_utils: Add BuildHasher parameter to bevy_utils::Entry type alias (#12308) 2024-03-05 02:45:05 +00:00
bevy_audio don't depend directly on oboe (#12316) 2024-03-05 17:23:12 +00:00
bevy_color Fix green colors becoming darker in various examples (#12328) 2024-03-05 23:42:03 +00:00
bevy_core Check cfg during CI and fix feature typos (#12103) 2024-02-25 15:19:27 +00:00
bevy_core_pipeline Replace bevy_log's tracing reexport with bevy_utils' (#12254) 2024-03-02 18:38:04 +00:00
bevy_derive Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_diagnostic Replace bevy_log's tracing reexport with bevy_utils' (#12254) 2024-03-02 18:38:04 +00:00
bevy_dylib Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_dynamic_plugin Document all members of bevy_dynamic_plugin (#12029) 2024-02-22 13:28:52 +00:00
bevy_ecs Clean up pointer use in BundleSpawner/BundleInserter (#12269) 2024-03-06 05:52:18 +00:00
bevy_ecs_compile_fail_tests Remove APIs deprecated in 0.13 (#11974) 2024-02-19 19:04:47 +00:00
bevy_encase_derive Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_gilrs Replace bevy_log's tracing reexport with bevy_utils' (#12254) 2024-03-02 18:38:04 +00:00
bevy_gizmos Add basic light gizmos (#12228) 2024-03-03 18:50:46 +00:00
bevy_gltf Replace bevy_log's tracing reexport with bevy_utils' (#12254) 2024-03-02 18:38:04 +00:00
bevy_hierarchy Move commands module into bevy::ecs::world (#12234) 2024-03-02 23:13:45 +00:00
bevy_input Update Input to ButtonInput in a couple places at keyboard input docs (#12284) 2024-03-04 00:52:47 +00:00
bevy_internal Fix failures of typos and check-cfg (#12293) 2024-03-04 07:48:09 +00:00
bevy_log Add access to App within LogPlugin::update_subscriber (#12045) 2024-03-04 00:01:05 +00:00
bevy_macro_utils fix some typos (#12038) 2024-02-22 18:55:22 +00:00
bevy_macros_compile_fail_tests Standardize toml format with taplo (#10594) 2023-11-21 01:04:14 +00:00
bevy_math Add note about rotations for Aabb3d (#12315) 2024-03-05 17:22:53 +00:00
bevy_mikktspace fix some typos (#12038) 2024-02-22 18:55:22 +00:00
bevy_pbr update comment on emissive field of StandardMaterial struct to mention large color channel values (#12248) 2024-03-05 16:15:28 +00:00
bevy_ptr Clean up pointer use in BundleSpawner/BundleInserter (#12269) 2024-03-06 05:52:18 +00:00
bevy_reflect bevy_utils: Add BuildHasher parameter to bevy_utils::Entry type alias (#12308) 2024-03-05 02:45:05 +00:00
bevy_reflect_compile_fail_tests bevy_reflect: Recursive registration (#5781) 2024-03-04 19:04:10 +00:00
bevy_render bevy_reflect: Recursive registration (#5781) 2024-03-04 19:04:10 +00:00
bevy_scene Move commands module into bevy::ecs::world (#12234) 2024-03-02 23:13:45 +00:00
bevy_sprite Fix docs for atlas + slicing support (#12325) 2024-03-05 18:04:22 +00:00
bevy_tasks remove repetitive code (#12270) 2024-03-03 07:58:22 +00:00
bevy_text Migrate from LegacyColor to bevy_color::Color (#12163) 2024-02-29 19:35:12 +00:00
bevy_time Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_transform Move commands module into bevy::ecs::world (#12234) 2024-03-02 23:13:45 +00:00
bevy_ui Fix docs for atlas + slicing support (#12325) 2024-03-05 18:04:22 +00:00
bevy_utils bevy_utils: Add BuildHasher parameter to bevy_utils::Entry type alias (#12308) 2024-03-05 02:45:05 +00:00
bevy_window Fix with_scale_factor_override improperly setting scale_factor_override (#12321) 2024-03-05 19:58:09 +00:00
bevy_winit Fix winit control flow when re-focusing game (#12239) 2024-03-04 19:15:05 +00:00