diff --git a/Cargo.lock b/Cargo.lock index 5b45a0f..0c41a1f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -530,10 +530,8 @@ name = "rascal" version = "0.3.5" dependencies = [ "annotate-snippets", - "byteorder", "indexmap", "insta", - "log", "serde", "swf", "winnow", diff --git a/crates/rascal/Cargo.toml b/crates/rascal/Cargo.toml index 6de3290..d7cb5e8 100644 --- a/crates/rascal/Cargo.toml +++ b/crates/rascal/Cargo.toml @@ -13,10 +13,8 @@ categories = ["compilers", "parser-implementations"] indexmap = { version = "2.14.0", features = ["serde"] } serde = { version = "1.0.228", features = ["derive"] } annotate-snippets = "0.12.16" -byteorder = "1.5.0" swf = "0.3.0" winnow = "1.0.2" -log = "0.4.31" [dev-dependencies] insta = { version = "1.47.2", features = ["yaml", "glob"] } diff --git a/crates/rascal/src/swf.rs b/crates/rascal/src/swf.rs index ce8c248..87d4f6c 100644 --- a/crates/rascal/src/swf.rs +++ b/crates/rascal/src/swf.rs @@ -1,6 +1,5 @@ use crate::internal::as2_pcode::{Action, Actions, CatchTarget, FunctionParam, PushValue}; use crate::program::{CompiledProgram, SwfOptions}; -use byteorder::{LittleEndian, WriteBytesExt}; use indexmap::IndexMap; use std::collections::HashMap; use std::fmt; @@ -109,66 +108,11 @@ impl SwfWriteExt for ActionEncoder<'_> { fn as_writer(&mut self) -> &mut impl Write { &mut self.output } - - #[inline] - fn write_u8(&mut self, n: u8) -> Result<()> { - self.output.write_u8(n) - } - - #[inline] - fn write_u16(&mut self, n: u16) -> Result<()> { - self.output.write_u16::(n) - } - - #[inline] - fn write_u32(&mut self, n: u32) -> Result<()> { - self.output.write_u32::(n) - } - - #[inline] - fn write_u64(&mut self, n: u64) -> Result<()> { - self.output.write_u64::(n) - } - - #[inline] - fn write_i8(&mut self, n: i8) -> Result<()> { - self.output.write_i8(n) - } - - #[inline] - fn write_i16(&mut self, n: i16) -> Result<()> { - self.output.write_i16::(n) - } - - #[inline] - fn write_i32(&mut self, n: i32) -> Result<()> { - self.output.write_i32::(n) - } - - #[inline] - fn write_f32(&mut self, n: f32) -> Result<()> { - self.output.write_f32::(n) - } - - #[inline] - fn write_f64(&mut self, n: f64) -> Result<()> { - self.output.write_f64::(n) - } - - fn write_string(&mut self, s: &'_ SwfStr) -> Result<()> { - let bytes = s.as_bytes(); - if bytes.contains(&0) { - return Err(EncoderError::NulByteInString.into()); - } - self.output.write_all(bytes)?; - self.write_u8(0) - } } #[derive(Debug)] enum EncoderError { TooManyModules, - NulByteInString, JumpOffsetOverflow(isize), ActionLenOverflow(usize), BlockLenOverflow(usize), @@ -178,7 +122,6 @@ impl fmt::Display for EncoderError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Self::TooManyModules => write!(f, "too many modules"), - Self::NulByteInString => write!(f, "invalid NUL byte in string"), Self::JumpOffsetOverflow(off) => { write!(f, "jump offset ({off} bytes) cannot fit in i16") }