@@ -3,9 +3,7 @@ use hashbrown::HashMap;
33use crate :: {
44 alloc:: arena2:: { ArenaPointer , ErasedHeapItem } ,
55 collectors:: mark_sweep:: {
6- Finalize , MarkSweepGarbageCollector , TraceColor ,
7- internals:: Ephemeron ,
8- trace:: Trace ,
6+ Finalize , MarkSweepGarbageCollector , TraceColor , internals:: Ephemeron , trace:: Trace ,
97 } ,
108} ;
119
@@ -25,15 +23,12 @@ struct WeakMapInner<K: Trace + 'static, V: Trace + 'static> {
2523
2624impl < K : Trace , V : Trace > WeakMapInner < K , V > {
2725 fn new ( ) -> Self {
28- Self { entries : HashMap :: new ( ) }
26+ Self {
27+ entries : HashMap :: new ( ) ,
28+ }
2929 }
3030
31- fn insert (
32- & mut self ,
33- key : & Gc < K > ,
34- value : V ,
35- collector : & mut MarkSweepGarbageCollector ,
36- ) {
31+ fn insert ( & mut self , key : & Gc < K > , value : V , collector : & mut MarkSweepGarbageCollector ) {
3732 let key_addr = key. inner_ptr . as_non_null ( ) . as_ptr ( ) as usize ;
3833
3934 // Drop the old entry before allocating a new one to prevent the old
@@ -77,9 +72,7 @@ impl<K: Trace, V: Trace> ErasedWeakMap for WeakMapInner<K, V> {
7772 self . entries . retain ( |_, ephemeron_ptr| {
7873 // SAFETY: Memory is valid until next collector step
7974 // We only read the dropped flag
80- let heap_item = unsafe {
81- ephemeron_ptr. as_ptr ( ) . cast :: < ErasedHeapItem > ( ) . as_ref ( )
82- } ;
75+ let heap_item = unsafe { ephemeron_ptr. as_ptr ( ) . cast :: < ErasedHeapItem > ( ) . as_ref ( ) } ;
8376 !heap_item. is_dropped ( )
8477 } ) ;
8578 }
@@ -90,7 +83,7 @@ impl<K: Trace, V: Trace> ErasedWeakMap for WeakMapInner<K, V> {
9083// the collector owns the actual data, this is just a thin pointer
9184// wrapper that stays valid as long as the collector does
9285pub struct WeakMap < K : Trace + ' static , V : Trace + ' static > {
93- // raw pointer to collector owned memory
86+ // raw pointer to collector owned memory
9487 inner : * mut WeakMapInner < K , V > ,
9588}
9689
@@ -102,7 +95,8 @@ impl<K: Trace, V: Trace> WeakMap<K, V> {
10295 // get a raw pointer that stays valid even after the box is moved
10396 let inner: * mut WeakMapInner < K , V > = rust_alloc:: boxed:: Box :: into_raw ( boxed) ;
10497 // SAFETY: we just got this from into_raw, and we are giving ownership to the collector
105- let erased: rust_alloc:: boxed:: Box < dyn ErasedWeakMap > = unsafe { rust_alloc:: boxed:: Box :: from_raw ( inner) } ;
98+ let erased: rust_alloc:: boxed:: Box < dyn ErasedWeakMap > =
99+ unsafe { rust_alloc:: boxed:: Box :: from_raw ( inner) } ;
106100 collector. weak_maps . push ( erased) ;
107101 Self { inner }
108102 }
0 commit comments