diff --git a/Cargo.toml b/Cargo.toml index d9c094e9..703680ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cssparser" -version = "0.23.9" +version = "0.23.10" authors = [ "Simon Sapin " ] description = "Rust implementation of CSS Syntax Level 3" diff --git a/procedural-masquerade/lib.rs b/procedural-masquerade/lib.rs index 86e841a0..22cdeeb1 100644 --- a/procedural-masquerade/lib.rs +++ b/procedural-masquerade/lib.rs @@ -177,8 +177,15 @@ macro_rules! define_proc_macros { fn wrapped($input: &str) -> String { $body } + + // syn uses a huge amount of stack in debug mode. let derive_input_string = derive_input.to_string(); - wrapped($crate::_extract_input(&derive_input_string)).parse().unwrap() + let handle = + ::std::thread::Builder::new().stack_size(128 * 1024 * 1024).spawn(move || { + wrapped($crate::_extract_input(&derive_input_string)) + }).unwrap(); + + handle.join().unwrap().parse().unwrap() } )+ }