chore: update to rust 1.85 (#28236)

Updates to use rust 1.85. Doesn't move to the 2024 edition, as that's a
fair bit more involved.

A nice side benefit is that the new rustc version seems to lead to a
slight reduction in binary size (at least on mac):

```
    FILE SIZE   
 -------------- 
  +4.3%  +102Ki    __DATA_CONST,__const
  [NEW] +69.3Ki    __TEXT,__literals
  [NEW] +68.5Ki    Rebase Info
  +5.0% +39.9Ki    __TEXT,__unwind_info
   +57% +8.85Ki    [__TEXT]
  [NEW] +8.59Ki    Lazy Binding Info
  [NEW] +5.16Ki    __TEXT,__stub_helper
  [NEW] +3.58Ki    Export Info
  [NEW] +3.42Ki    __DATA,__la_symbol_ptr
  -0.1%    -726    [12 Others]
 -21.4% -3.10Ki    [__DATA_CONST]
 -95.8% -3.39Ki    __DATA_CONST,__got
 -20.9% -3.43Ki    [__DATA]
  -0.5% -4.52Ki    Code Signature
 -100.0% -11.6Ki    [__LINKEDIT]
  -1.0% -43.5Ki    Symbol Table
  -1.6% -44.0Ki    __TEXT,__gcc_except_tab
  -0.2% -48.1Ki    __TEXT,__const
  -3.3% -78.6Ki    __TEXT,__eh_frame
  -0.7%  -320Ki    __TEXT,__text
  -1.5%  -334Ki    String Table
  -0.5%  -586Ki    TOTAL
```
This commit is contained in:
Nathan Whitaker 2025-02-25 08:50:01 -08:00 committed by GitHub
parent e66ef32a8f
commit ee4c14a550
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
66 changed files with 158 additions and 176 deletions

View file

@ -316,7 +316,7 @@ impl Drop for NapiState {
.env_cleanup_hooks
.borrow()
.iter()
.any(|pair| pair.0 == hook.0 && pair.1 == hook.1)
.any(|pair| std::ptr::fn_addr_eq(pair.0, hook.0) && pair.1 == hook.1)
{
continue;
}
@ -326,10 +326,9 @@ impl Drop for NapiState {
}
{
self
.env_cleanup_hooks
.borrow_mut()
.retain(|pair| !(pair.0 == hook.0 && pair.1 == hook.1));
self.env_cleanup_hooks.borrow_mut().retain(|pair| {
!(std::ptr::fn_addr_eq(pair.0, hook.0) && pair.1 == hook.1)
});
}
}
}
@ -473,7 +472,10 @@ impl Env {
data: *mut c_void,
) {
let mut hooks = self.cleanup_hooks.borrow_mut();
if hooks.iter().any(|pair| pair.0 == hook && pair.1 == data) {
if hooks
.iter()
.any(|pair| std::ptr::fn_addr_eq(pair.0, hook) && pair.1 == data)
{
panic!("Cannot register cleanup hook with same data twice");
}
hooks.push((hook, data));
@ -487,7 +489,7 @@ impl Env {
let mut hooks = self.cleanup_hooks.borrow_mut();
match hooks
.iter()
.rposition(|&pair| pair.0 == hook && pair.1 == data)
.rposition(|&pair| std::ptr::fn_addr_eq(pair.0, hook) && pair.1 == data)
{
Some(index) => {
hooks.remove(index);