chore: Cleanup multiname creation in XML
This commit is contained in:
parent
f95599b816
commit
ac9106ccb4
|
@ -4,7 +4,7 @@ use crate::avm2::e4x::{E4XNode, E4XNodeKind};
|
||||||
pub use crate::avm2::object::xml_allocator;
|
pub use crate::avm2::object::xml_allocator;
|
||||||
use crate::avm2::object::{E4XOrXml, QNameObject, TObject, XmlListObject};
|
use crate::avm2::object::{E4XOrXml, QNameObject, TObject, XmlListObject};
|
||||||
use crate::avm2::string::AvmString;
|
use crate::avm2::string::AvmString;
|
||||||
use crate::avm2::{Activation, Error, Object, QName, Value};
|
use crate::avm2::{Activation, Error, Multiname, Object, Value};
|
||||||
use crate::avm2_stub_method;
|
use crate::avm2_stub_method;
|
||||||
|
|
||||||
pub fn init<'gc>(
|
pub fn init<'gc>(
|
||||||
|
@ -53,7 +53,7 @@ pub fn name<'gc>(
|
||||||
avm2_stub_method!(activation, "XML", "name", "namespaces");
|
avm2_stub_method!(activation, "XML", "name", "namespaces");
|
||||||
// FIXME - use namespace
|
// FIXME - use namespace
|
||||||
let namespace = activation.avm2().public_namespace;
|
let namespace = activation.avm2().public_namespace;
|
||||||
Ok(QNameObject::from_name(activation, QName::new(namespace, local_name))?.into())
|
Ok(QNameObject::from_name(activation, Multiname::new(namespace, local_name))?.into())
|
||||||
} else {
|
} else {
|
||||||
Ok(Value::Null)
|
Ok(Value::Null)
|
||||||
}
|
}
|
||||||
|
@ -128,23 +128,21 @@ pub fn attribute<'gc>(
|
||||||
let xml = this.as_xml_object().unwrap();
|
let xml = this.as_xml_object().unwrap();
|
||||||
let name = args[0];
|
let name = args[0];
|
||||||
let multiname = match name {
|
let multiname = match name {
|
||||||
Value::String(s) => QName::new(activation.avm2().public_namespace, s).into(),
|
Value::String(s) => Multiname::new(activation.avm2().public_namespace, s),
|
||||||
Value::Object(o) => {
|
Value::Object(o) => {
|
||||||
if let Some(qname) = o.as_qname_object() {
|
if let Some(qname) = o.as_qname_object() {
|
||||||
qname.name().clone()
|
qname.name().clone()
|
||||||
} else {
|
} else {
|
||||||
QName::new(
|
Multiname::new(
|
||||||
activation.avm2().public_namespace,
|
activation.avm2().public_namespace,
|
||||||
name.coerce_to_string(activation)?,
|
name.coerce_to_string(activation)?,
|
||||||
)
|
)
|
||||||
.into()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => QName::new(
|
_ => Multiname::new(
|
||||||
activation.avm2().public_namespace,
|
activation.avm2().public_namespace,
|
||||||
name.coerce_to_string(activation)?,
|
name.coerce_to_string(activation)?,
|
||||||
)
|
),
|
||||||
.into(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let attribute = if let E4XNodeKind::Element { attributes, .. } = &*xml.node().kind() {
|
let attribute = if let E4XNodeKind::Element { attributes, .. } = &*xml.node().kind() {
|
||||||
|
|
|
@ -5,7 +5,7 @@ use crate::{
|
||||||
avm2::{
|
avm2::{
|
||||||
e4x::{simple_content_to_string, E4XNode, E4XNodeKind},
|
e4x::{simple_content_to_string, E4XNode, E4XNodeKind},
|
||||||
object::{E4XOrXml, XmlListObject},
|
object::{E4XOrXml, XmlListObject},
|
||||||
Activation, Error, Object, QName, TObject, Value,
|
Activation, Error, Multiname, Object, TObject, Value,
|
||||||
},
|
},
|
||||||
avm2_stub_method,
|
avm2_stub_method,
|
||||||
};
|
};
|
||||||
|
@ -106,23 +106,21 @@ pub fn attribute<'gc>(
|
||||||
|
|
||||||
let name = args[0];
|
let name = args[0];
|
||||||
let multiname = match name {
|
let multiname = match name {
|
||||||
Value::String(s) => QName::new(activation.avm2().public_namespace, s).into(),
|
Value::String(s) => Multiname::new(activation.avm2().public_namespace, s),
|
||||||
Value::Object(o) => {
|
Value::Object(o) => {
|
||||||
if let Some(qname) = o.as_qname_object() {
|
if let Some(qname) = o.as_qname_object() {
|
||||||
qname.name().clone()
|
qname.name().clone()
|
||||||
} else {
|
} else {
|
||||||
QName::new(
|
Multiname::new(
|
||||||
activation.avm2().public_namespace,
|
activation.avm2().public_namespace,
|
||||||
name.coerce_to_string(activation)?,
|
name.coerce_to_string(activation)?,
|
||||||
)
|
)
|
||||||
.into()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => QName::new(
|
_ => Multiname::new(
|
||||||
activation.avm2().public_namespace,
|
activation.avm2().public_namespace,
|
||||||
name.coerce_to_string(activation)?,
|
name.coerce_to_string(activation)?,
|
||||||
)
|
),
|
||||||
.into(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let children = list.children();
|
let children = list.children();
|
||||||
|
|
Loading…
Reference in New Issue