Skip to content

Commit 257d884

Browse files
avm2: Store a class->alias mapping instead of a ClassObject->alias mapping for AMF
1 parent 28cde78 commit 257d884

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

core/src/avm2.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ pub struct Avm2<'gc> {
180180
orphan_objects: Rc<Vec<DisplayObjectWeak<'gc>>>,
181181

182182
alias_to_class_map: FnvHashMap<AvmString<'gc>, ClassObject<'gc>>,
183-
class_to_alias_map: FnvHashMap<ClassObject<'gc>, AvmString<'gc>>,
183+
class_to_alias_map: FnvHashMap<Class<'gc>, AvmString<'gc>>,
184184

185185
/// The api version of our root movie clip. Note - this is used as the
186186
/// api version for swfs loaded via `Loader`, overriding the api version
@@ -294,14 +294,15 @@ impl<'gc> Avm2<'gc> {
294294

295295
pub fn register_class_alias(&mut self, name: AvmString<'gc>, class_object: ClassObject<'gc>) {
296296
self.alias_to_class_map.insert(name, class_object);
297-
self.class_to_alias_map.insert(class_object, name);
297+
self.class_to_alias_map
298+
.insert(class_object.inner_class_definition(), name);
298299
}
299300

300301
pub fn get_class_by_alias(&self, name: AvmString<'gc>) -> Option<ClassObject<'gc>> {
301302
self.alias_to_class_map.get(&name).copied()
302303
}
303304

304-
pub fn get_alias_by_class(&self, cls: ClassObject<'gc>) -> Option<AvmString<'gc>> {
305+
pub fn get_alias_by_class(&self, cls: Class<'gc>) -> Option<AvmString<'gc>> {
305306
self.class_to_alias_map.get(&cls).copied()
306307
}
307308

core/src/avm2/amf.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use std::rc::Rc;
22

33
use crate::avm2::bytearray::ByteArrayStorage;
4+
use crate::avm2::class::Class;
45
use crate::avm2::object::{ByteArrayObject, ClassObject, TObject, VectorObject};
56
use crate::avm2::vector::VectorStorage;
67
use crate::avm2::ArrayObject;
@@ -178,7 +179,7 @@ fn alias_to_class<'gc>(
178179
}
179180
}
180181

181-
fn class_to_alias<'gc>(activation: &mut Activation<'_, 'gc>, class: ClassObject<'gc>) -> String {
182+
fn class_to_alias<'gc>(activation: &mut Activation<'_, 'gc>, class: Class<'gc>) -> String {
182183
if let Some(alias) = activation.avm2().get_alias_by_class(class) {
183184
alias.to_string()
184185
} else {

0 commit comments

Comments
 (0)