File tree Expand file tree Collapse file tree 1 file changed +3
-2
lines changed Expand file tree Collapse file tree 1 file changed +3
-2
lines changed Original file line number Diff line number Diff line change @@ -163,7 +163,7 @@ fn collect_garbage(st: &mut GcState) {
163163 }
164164 // We trace in a different scope such that node isn't
165165 // mutably borrowed anymore
166- unsafe { node. mark_phase_trace_all ( ) ; }
166+ unsafe { node. trace_value ( ) ; }
167167 } else { break }
168168 }
169169
@@ -176,6 +176,7 @@ fn collect_garbage(st: &mut GcState) {
176176 loop {
177177 if let Some ( ref mut node) = * unsafe { & mut * next_node } {
178178 // XXX This virtual method call is nasty :(
179+ let size = node. size_of ( ) ;
179180 let header = node. header_mut ( ) ;
180181
181182 if header. marked . get ( ) {
@@ -184,7 +185,7 @@ fn collect_garbage(st: &mut GcState) {
184185 next_node = & mut header. next ;
185186 } else {
186187 // The node wasn't marked - we need to delete it
187- st. bytes_allocated -= node . size_of ( ) ;
188+ st. bytes_allocated -= size ;
188189 let mut tmp = None ;
189190 mem:: swap ( & mut tmp, & mut header. next ) ;
190191 mem:: swap ( & mut tmp, unsafe { & mut * next_node } ) ;
You can’t perform that action at this time.
0 commit comments