diff options
-rw-r--r-- | bin/domain/imag-mail/src/lib.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/bin/domain/imag-mail/src/lib.rs b/bin/domain/imag-mail/src/lib.rs index 564be610..03a1a1b6 100644 --- a/bin/domain/imag-mail/src/lib.rs +++ b/bin/domain/imag-mail/src/lib.rs @@ -204,12 +204,16 @@ fn list(rt: &Runtime) -> Result<()> { let iter = if find_root { let iter = iter.and_then_ok(|fle| { trace!("Loading: {}", fle.get_location()); - fle.load(conn)? + let id = fle + .load(conn)? .ok_or_else(|| format_err!("Cannot load mail: {}", fle.get_location()))? .parsed()? .root_parent(&mailstore)? .ok_or_else(|| format_err!("Failed to find root parent: {}", fle.get_location())) - .map(|p| p.get_id().clone()) + .map(|p| p.get_id().clone()); + + drop(fle); + id }); Box::new(iter) as Box<dyn Iterator<Item = Result<String>>> |