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

Use HandleOrNull and HandleOrInvalid in the Windows FFI bindings. #94572

Merged
merged 1 commit into from
Mar 4, 2022

Conversation

sunfishcode
Copy link
Member

Use the new HandleOrNull and HandleOrInvalid types that were introduced
as part of I/O safety in a few functions in the Windows FFI bindings.

This factors out an unsafe block and two unsafe function calls in the
Windows implementation code.

And, it helps test HandleOrNull and HandleOrInvalid, and indeed, it
turned up a bug: OwnedHandle also needs to be #[repr(transparent)],
as it's used inside of HandleOrNull and HandleOrInvalid which are also
#[repr(transparent)].

r? @joshtriplett

Use the new `HandleOrNull` and `HandleOrInvalid` types that were introduced
as part of [I/O safety] in a few functions in the Windows FFI bindings.

This factors out an `unsafe` block and two `unsafe` function calls in the
Windows implementation code.

And, it helps test `HandleOrNull` and `HandleOrInvalid`, which indeed turned
up a bug: `OwnedHandle` also needs to be `#[repr(transparent)]`, as it's
used inside of `HandleOrNull` and `HandleOrInvalid` which are also
`#[repr(transparent)]`.

[I/O safety]: rust-lang#87074
@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 3, 2022
@joshtriplett
Copy link
Member

@bors r+

@bors
Copy link
Contributor

bors commented Mar 4, 2022

📌 Commit 3560649 has been approved by joshtriplett

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 4, 2022
Dylan-DPC added a commit to Dylan-DPC/rust that referenced this pull request Mar 4, 2022
…r=joshtriplett

Use `HandleOrNull` and `HandleOrInvalid` in the Windows FFI bindings.

Use the new `HandleOrNull` and `HandleOrInvalid` types that were introduced
as part of [I/O safety] in a few functions in the Windows FFI bindings.

This factors out an `unsafe` block and two `unsafe` function calls in the
Windows implementation code.

And, it helps test `HandleOrNull` and `HandleOrInvalid`, and indeed, it
turned up a bug: `OwnedHandle` also needs to be `#[repr(transparent)]`,
as it's used inside of `HandleOrNull` and `HandleOrInvalid` which are also
`#[repr(transparent)]`.

r? `@joshtriplett`

[I/O safety]: rust-lang#87074
sunfishcode added a commit to sunfishcode/io-lifetimes that referenced this pull request Mar 4, 2022
This corresponds to rust-lang/rust#94572, which was recently approved.

Also, fix a warning about a doc comment on an extern block.
sunfishcode added a commit to sunfishcode/io-lifetimes that referenced this pull request Mar 4, 2022
This corresponds to rust-lang/rust#94572, which was recently approved.

Also, fix a warning about a doc comment on an extern block.
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 4, 2022
Rollup of 10 pull requests

Successful merges:

 - rust-lang#88805 (Clarification of default socket flags)
 - rust-lang#93418 (rustdoc & doc: no `shortcut` for `rel="icon"`)
 - rust-lang#93913 (Remove the everybody loops pass)
 - rust-lang#93965 (Make regular stdio lock() return 'static handles)
 - rust-lang#94339 (ARM: Only allow using d16-d31 with asm! when supported by the target)
 - rust-lang#94404 (Make Ord and PartialOrd opt-out in `newtype_index`)
 - rust-lang#94466 (bootstrap: correct reading of flags for llvm)
 - rust-lang#94572 (Use `HandleOrNull` and `HandleOrInvalid` in the Windows FFI bindings.)
 - rust-lang#94575 (CTFE SwitchInt: update comment)
 - rust-lang#94582 (Fix a bug in `x.py fmt` that prevents some files being formatted.)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 308efaf into rust-lang:master Mar 4, 2022
@rustbot rustbot added this to the 1.61.0 milestone Mar 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants