From 6d1d95c1e7718d338bbc7bd072861994c056525c Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 15 May 2021 16:42:14 +0100 Subject: [PATCH] bundles: clear: When unexpected leftover stuff, print it Signed-off-by: Ian Jackson --- src/bundles.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/bundles.rs b/src/bundles.rs index f3b46422..fcb39f76 100644 --- a/src/bundles.rs +++ b/src/bundles.rs @@ -911,14 +911,21 @@ impl InstanceBundles { pub fn clear(&mut self, ig: &mut Instance) { // Check we are not in bundle state USED - for (m, ok) in [ - ( "pieces", ig.gs.pieces.is_empty() ), - ( "pieces - occults", ig.gs.occults.is_empty() ), - ( "pieces - ipieces", ig.ipieces.is_empty() ), - ( "piece aliases", ig.pcaliases.is_empty() ), - ( "pieces - ioccults", ig.ioccults.is_empty() ), - ] { - if ! ok { throw!(ME::BundlesInUse(m.to_string())) } + let checks: &[(_,_, Option<&dyn Debug>)] = &[ + ( "pieces", ig.gs.pieces.is_empty(), None ), + ( "piece aliases", ig.pcaliases.is_empty(), None ), + ( "pieces - occults", ig.gs.occults.is_empty(), Some(&ig.gs.occults) ), + ( "pieces - ipieces", ig.ipieces.is_empty(), Some(&ig.ipieces ) ), + ( "pieces - ioccults", ig.ioccults.is_empty(), Some(&ig.ioccults ) ), + ]; + for (m, ok, pr) in checks { + if ! ok { + if let Some(pr) = pr { + error!("{}: failed to clear because leftover {}: {:?}", + &ig.name, m, pr); + } + throw!(ME::BundlesInUse(m.to_string())) + } } // If we are in UNUSED, become BROKEN -- 2.30.2