diff --git a/Cargo.lock b/Cargo.lock index 5954287c42..34470c0a6f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2808,9 +2808,9 @@ checksum = "afb2e1c3ee07430c2cf76151675e583e0f19985fa6efae47d6848a3e2c824f85" [[package]] name = "ouroboros" -version = "0.5.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc04551635026d3ac7bc646698ea1836a85ed2a26b7094fe1d15d8b14854c4a2" +checksum = "cc1f52300b81ac4eeeb6c00c20f7e86556c427d9fb2d92b68fc73c22f331cd15" dependencies = [ "ouroboros_macro", "stable_deref_trait", @@ -2818,11 +2818,12 @@ dependencies = [ [[package]] name = "ouroboros_macro" -version = "0.5.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec33dfceabec83cd0e95a5ce9d20e76ab3a5cbfef59659b8c927f69b93ed8ae" +checksum = "41db02c8f8731cdd7a72b433c7900cce4bf245465b452c364bfd21f4566ab055" dependencies = [ "Inflector", + "proc-macro-error", "proc-macro2 1.0.24", "quote 1.0.6", "syn 1.0.67", diff --git a/programs/bpf/Cargo.lock b/programs/bpf/Cargo.lock index cb65e3af66..5af29aff2c 100644 --- a/programs/bpf/Cargo.lock +++ b/programs/bpf/Cargo.lock @@ -1898,9 +1898,9 @@ dependencies = [ [[package]] name = "ouroboros" -version = "0.5.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc04551635026d3ac7bc646698ea1836a85ed2a26b7094fe1d15d8b14854c4a2" +checksum = "cc1f52300b81ac4eeeb6c00c20f7e86556c427d9fb2d92b68fc73c22f331cd15" dependencies = [ "ouroboros_macro", "stable_deref_trait", @@ -1908,11 +1908,12 @@ dependencies = [ [[package]] name = "ouroboros_macro" -version = "0.5.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec33dfceabec83cd0e95a5ce9d20e76ab3a5cbfef59659b8c927f69b93ed8ae" +checksum = "41db02c8f8731cdd7a72b433c7900cce4bf245465b452c364bfd21f4566ab055" dependencies = [ "Inflector", + "proc-macro-error", "proc-macro2 1.0.24", "quote 1.0.6", "syn 1.0.67", @@ -2082,6 +2083,30 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.24", + "quote 1.0.6", + "syn 1.0.67", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.6", + "version_check", +] + [[package]] name = "proc-macro-hack" version = "0.5.19" diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index ca45178e3d..c06a53e5f6 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -30,7 +30,7 @@ memmap2 = "0.2.3" num-derive = { version = "0.3" } num-traits = { version = "0.2" } num_cpus = "1.13.0" -ouroboros = "0.5.1" +ouroboros = "0.9.3" rand = "0.7.0" rayon = "1.5.1" regex = "1.5.4" diff --git a/runtime/src/accounts_index.rs b/runtime/src/accounts_index.rs index 60bc8c3a84..bd56a66616 100644 --- a/runtime/src/accounts_index.rs +++ b/runtime/src/accounts_index.rs @@ -129,6 +129,7 @@ pub enum AccountIndexGetResult<'a, T: 'static> { pub struct ReadAccountMapEntry { owned_entry: AccountMapEntry, #[borrows(owned_entry)] + #[covariant] slot_list_guard: RwLockReadGuard<'this, SlotList>, } @@ -146,7 +147,7 @@ impl ReadAccountMapEntry { } pub fn ref_count(&self) -> &AtomicU64 { - &self.borrow_owned_entry_contents().ref_count + &self.borrow_owned_entry().ref_count } pub fn unref(&self) { @@ -162,6 +163,7 @@ impl ReadAccountMapEntry { pub struct WriteAccountMapEntry { owned_entry: AccountMapEntry, #[borrows(owned_entry)] + #[covariant] slot_list_guard: RwLockWriteGuard<'this, SlotList>, } @@ -186,7 +188,7 @@ impl WriteAccountMapEntry { } pub fn ref_count(&self) -> &AtomicU64 { - &self.borrow_owned_entry_contents().ref_count + &self.borrow_owned_entry().ref_count } // create an entry that is equivalent to this process: