swf: Decode and encode the `applytype` op.
This commit is contained in:
parent
86616b748f
commit
9dafddc1ae
|
@ -2,6 +2,7 @@
|
|||
pub enum OpCode {
|
||||
Add = 0xA0,
|
||||
AddI = 0xC5,
|
||||
ApplyType = 0x53,
|
||||
AsType = 0x86,
|
||||
AsTypeLate = 0x87,
|
||||
BitAnd = 0xA8,
|
||||
|
|
|
@ -519,6 +519,9 @@ impl<'a> Reader<'a> {
|
|||
let op = match opcode {
|
||||
OpCode::Add => Op::Add,
|
||||
OpCode::AddI => Op::AddI,
|
||||
OpCode::ApplyType => Op::ApplyType {
|
||||
num_types: self.read_u30()?,
|
||||
},
|
||||
OpCode::AsType => Op::AsType {
|
||||
type_name: self.read_index()?,
|
||||
},
|
||||
|
|
|
@ -233,6 +233,9 @@ pub struct Script {
|
|||
pub enum Op {
|
||||
Add,
|
||||
AddI,
|
||||
ApplyType {
|
||||
num_types: u32,
|
||||
},
|
||||
AsType {
|
||||
type_name: Index<Multiname>,
|
||||
},
|
||||
|
|
|
@ -603,6 +603,10 @@ impl<W: Write> Writer<W> {
|
|||
match *op {
|
||||
Op::Add => self.write_opcode(OpCode::Add)?,
|
||||
Op::AddI => self.write_opcode(OpCode::AddI)?,
|
||||
Op::ApplyType { num_types } => {
|
||||
self.write_opcode(OpCode::ApplyType)?;
|
||||
self.write_u30(num_types)?;
|
||||
}
|
||||
Op::AsType { ref type_name } => {
|
||||
self.write_opcode(OpCode::AsType)?;
|
||||
self.write_index(type_name)?;
|
||||
|
|
Loading…
Reference in New Issue