From b9d9bea28a86ff8097bb52f0398143692aedb5b9 Mon Sep 17 00:00:00 2001 From: kyren Date: Wed, 7 Feb 2018 16:51:24 -0500 Subject: [PATCH] slightly faster, less obnoxious scope drop --- src/lua.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lua.rs b/src/lua.rs index 588a0b2..a0320e6 100644 --- a/src/lua.rs +++ b/src/lua.rs @@ -1101,10 +1101,12 @@ impl<'lua> Drop for Scope<'lua> { // can be sure that all of the userdata in Lua is actually invalidated. let state = self.lua.state; - let mut drops = Vec::new(); - for mut destructor in self.destructors.get_mut().drain(..) { - drops.push(destructor(state)); - } + let to_drop = self.destructors + .get_mut() + .drain(..) + .map(|mut destructor| destructor(state)) + .collect::>(); + drop(to_drop); } }