Skip to content

Commit 998f47c

Browse files
evilpiedanielhjacobs
authored andcommitted
Switch to the AMF0 type marker names
1 parent 72bc1fe commit 998f47c

File tree

3 files changed

+35
-35
lines changed

3 files changed

+35
-35
lines changed

flash-lso/src/amf0/read.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ impl AMF0Decoder {
8282
Ok((i, Rc::new(Value::Reference(Reference(reference_index)))))
8383
}
8484

85-
fn parse_element_mixed_array<'a>(&mut self, i: &'a [u8]) -> AMFResult<'a, Rc<Value>> {
85+
fn parse_element_ecma_array<'a>(&mut self, i: &'a [u8]) -> AMFResult<'a, Rc<Value>> {
8686
let (i, array_length) = be_u32(i)?;
8787
map(
8888
|i| self.parse_array_element(i),
@@ -120,11 +120,11 @@ impl AMF0Decoder {
120120
#[cfg(fuzzing)]
121121
/// For fuzzing
122122
pub fn fuzz_parse_element_array<'a>(&mut self, i: &'a [u8]) -> AMFResult<'a, Rc<Value>> {
123-
self.parse_element_array(i)
123+
self.parse_element_strict_array(i)
124124
}
125125

126126
/// Parse an array of elements
127-
fn parse_element_array<'a>(&mut self, i: &'a [u8]) -> AMFResult<'a, Rc<Value>> {
127+
fn parse_element_strict_array<'a>(&mut self, i: &'a [u8]) -> AMFResult<'a, Rc<Value>> {
128128
let (i, length) = be_u32(i)?;
129129

130130
let length_usize = length
@@ -199,13 +199,13 @@ impl AMF0Decoder {
199199
let (i, v) = self.parse_element_reference(i)?;
200200
Ok((i, v))
201201
}
202-
TypeMarker::MixedArrayStart => {
203-
let (i, v) = self.parse_element_mixed_array(i)?;
202+
TypeMarker::ECMAArray => {
203+
let (i, v) = self.parse_element_ecma_array(i)?;
204204
self.cache[cache_idx] = Rc::clone(&v);
205205
Ok((i, v))
206206
}
207-
TypeMarker::Array => {
208-
let (i, v) = self.parse_element_array(i)?;
207+
TypeMarker::StrictArray => {
208+
let (i, v) = self.parse_element_strict_array(i)?;
209209
self.cache[cache_idx] = Rc::clone(&v);
210210
Ok((i, v))
211211
}

flash-lso/src/amf0/type_marker.rs

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,58 +4,58 @@
44
#[repr(u8)]
55
pub(crate) enum TypeMarker {
66
/// Number
7-
Number = 0,
7+
Number = 0x00,
88

99
/// Boolean
10-
Boolean = 1,
10+
Boolean = 0x01,
1111

1212
/// String
13-
String = 2,
13+
String = 0x02,
1414

1515
/// Object start
16-
Object = 3,
16+
Object = 0x03,
1717

1818
/// MovieClip (unused)
19-
MovieClip = 4,
19+
MovieClip = 0x04,
2020

2121
/// Null
22-
Null = 5,
22+
Null = 0x05,
2323

2424
/// Undefined
25-
Undefined = 6,
25+
Undefined = 0x06,
2626

27-
/// Reference (unused)
28-
Reference = 7,
27+
/// Reference
28+
Reference = 0x07,
2929

30-
/// Start of a mixed array
31-
MixedArrayStart = 8,
30+
/// Start of an ECMA array
31+
ECMAArray = 0x08,
3232

3333
/// Object end
34-
ObjectEnd = 9,
34+
ObjectEnd = 0x09,
3535

36-
/// Array start
37-
Array = 10,
36+
/// Strict array start
37+
StrictArray = 0x0A,
3838

3939
/// Date with timezone
40-
Date = 11,
40+
Date = 0x0B,
4141

4242
/// Long string (length > 65535)
43-
LongString = 12,
43+
LongString = 0x0C,
4444

4545
/// Unsupported
46-
Unsupported = 13,
46+
Unsupported = 0x0D,
4747

48-
/// Recordset
49-
RecordSet = 14,
48+
/// Recordset (unused)
49+
RecordSet = 0x0E,
5050

5151
/// XML
52-
Xml = 15,
52+
Xml = 0x0F,
5353

5454
/// Typed object start
55-
TypedObject = 16,
55+
TypedObject = 0x10,
5656

5757
/// Embedded AMF3 element
58-
AMF3 = 17,
58+
AMF3 = 0x11,
5959
}
6060

6161
impl TryFrom<u8> for TypeMarker {
@@ -71,9 +71,9 @@ impl TryFrom<u8> for TypeMarker {
7171
5 => Ok(Self::Null),
7272
6 => Ok(Self::Undefined),
7373
7 => Ok(Self::Reference),
74-
8 => Ok(Self::MixedArrayStart),
74+
8 => Ok(Self::ECMAArray),
7575
9 => Ok(Self::ObjectEnd),
76-
10 => Ok(Self::Array),
76+
10 => Ok(Self::StrictArray),
7777
11 => Ok(Self::Date),
7878
12 => Ok(Self::LongString),
7979
13 => Ok(Self::Unsupported),

flash-lso/src/amf0/write.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ fn write_strict_array_element<'a, 'b: 'a, W: Write + 'a>(
7575
writer: &mut W,
7676
elements: &'b [Rc<Value>],
7777
) -> Result<()> {
78-
write_type_marker(writer, TypeMarker::Array)?;
78+
write_type_marker(writer, TypeMarker::StrictArray)?;
7979
writer.write_u32(elements.len() as u32)?;
8080
for element in elements {
8181
write_value(writer, element)?;
@@ -133,7 +133,7 @@ fn write_dense_element<'a, 'b: 'a, W: Write + 'a>(
133133
Ok(())
134134
}
135135

136-
fn write_mixed_array<'a, 'b: 'a, W: Write + 'a>(
136+
fn write_ecma_array<'a, 'b: 'a, W: Write + 'a>(
137137
writer: &mut W,
138138
dense: &'b [Rc<Value>],
139139
elements: &'b [Element],
@@ -142,7 +142,7 @@ fn write_mixed_array<'a, 'b: 'a, W: Write + 'a>(
142142
//TODO: what is the u16 padding
143143
//TODO: sometimes array length is ignored (u32) sometimes its: elements.len() as u32
144144

145-
write_type_marker(writer, TypeMarker::MixedArrayStart)?;
145+
write_type_marker(writer, TypeMarker::ECMAArray)?;
146146
writer.write_u32(length)?;
147147
for (idx, value) in dense.iter().enumerate() {
148148
write_dense_element(writer, idx, value)?
@@ -183,7 +183,7 @@ pub(crate) fn write_value<'a, 'b: 'a, W: Write + 'a>(
183183
Value::Unsupported => write_unsupported_element(writer),
184184
Value::XML(x, _string) => write_xml_element(writer, x),
185185
Value::ECMAArray(_id, dense, elems, elems_length) => {
186-
write_mixed_array(writer, dense, elems, *elems_length)
186+
write_ecma_array(writer, dense, elems, *elems_length)
187187
}
188188
#[cfg(feature = "amf3")]
189189
Value::AMF3(e) => {

0 commit comments

Comments
 (0)