Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error[E0793]: reference to packed field is unaligned #7

Open
wolewd opened this issue Jul 23, 2024 · 1 comment
Open

error[E0793]: reference to packed field is unaligned #7

wolewd opened this issue Jul 23, 2024 · 1 comment

Comments

@wolewd
Copy link

wolewd commented Jul 23, 2024

error[E0793]: reference to packed field is unaligned
   --> /home/woelwd/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rplidar_drv-0.6.0/src/ultra_capsuled_parser.rs:138:36
    |
138 |         let cabin_count = unsafe { prev_capsule.ultra_cabins.len() };
    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
    = note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
    = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)


@wolewd
Copy link
Author

wolewd commented Aug 2, 2024

Okay, since there is no response, I start to search for the solution by myself and finally get the solution. Replace line 138 in ultra_capsuled_parser.rs with this:

let ultra_cabins = prev_capsule.ultra_cabins;
let cabin_count = unsafe { ultra_cabins.len() };

Hopefully this can help people who had the same problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant