summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bin/domain/imag-mail/src/lib.rs8
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>>>