From b6536b1085f9d33d9ec816e72bf4c42162e0c3d3 Mon Sep 17 00:00:00 2001 From: Eduard-Mihai Burtescu Date: Thu, 19 Sep 2019 17:49:00 +0300 Subject: [PATCH] Don't leak a TokenStream in Ctxt::emit_errors. --- oauth1-request-derive/src/ctxt.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/oauth1-request-derive/src/ctxt.rs b/oauth1-request-derive/src/ctxt.rs index a781090..20bc547 100644 --- a/oauth1-request-derive/src/ctxt.rs +++ b/oauth1-request-derive/src/ctxt.rs @@ -6,22 +6,22 @@ use quote::ToTokens; use crate::util::error; pub struct Ctxt { - errors: TokenStream, + errors: Option, } impl Ctxt { pub fn new() -> Self { Self { - errors: TokenStream::new(), + errors: Some(TokenStream::new()), } } pub fn error(&mut self, msg: &str, span: Span) { - error(msg, span).to_tokens(&mut self.errors); + error(msg, span).to_tokens(self.errors.as_mut().unwrap()); } pub fn emit_errors(mut self) -> Option { - let errors = mem::replace(&mut self.errors, TokenStream::new()); + let errors = self.errors.take().unwrap(); mem::forget(self); if errors.is_empty() { None