style: Simplify the rule tree GC code a bit.

This commit is contained in:
Emilio Cobos Álvarez 2017-05-21 02:50:16 +02:00
parent e448c4a27e
commit cf6b3a0fcb
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C

View file

@ -855,20 +855,15 @@ impl StrongRuleNode {
debug_assert!(me.is_root(), "Can't call GC on a non-root node!"); debug_assert!(me.is_root(), "Can't call GC on a non-root node!");
while let Some(weak) = self.pop_from_free_list() { while let Some(weak) = self.pop_from_free_list() {
let needs_drop = { let node = &*weak.ptr();
let node = &*weak.ptr(); if node.refcount.load(Ordering::Relaxed) != 0 {
if node.refcount.load(Ordering::Relaxed) == 0 { // Nothing to do, the node is still alive.
node.remove_from_child_list(); continue;
true
} else {
false
}
};
debug!("GC'ing {:?}: {}", weak.ptr(), needs_drop);
if needs_drop {
let _ = Box::from_raw(weak.ptr());
} }
debug!("GC'ing {:?}", weak.ptr());
node.remove_from_child_list();
let _ = Box::from_raw(weak.ptr());
} }
me.free_count.store(0, Ordering::Relaxed); me.free_count.store(0, Ordering::Relaxed);