From 43f27b80ce3638b18a038d3e1c9022b8229e8792 Mon Sep 17 00:00:00 2001 From: Adrian Wielgosik Date: Fri, 5 Apr 2024 22:38:55 +0200 Subject: [PATCH] avm2: Also conditionally set IS_QNAME in 'new QName()' --- core/src/avm2/globals/q_name.rs | 3 ++- core/src/avm2/object/qname_object.rs | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/avm2/globals/q_name.rs b/core/src/avm2/globals/q_name.rs index 01d72f152..719595680 100644 --- a/core/src/avm2/globals/q_name.rs +++ b/core/src/avm2/globals/q_name.rs @@ -92,7 +92,8 @@ pub fn init<'gc>( }; if let Some(namespace) = namespace { - this.set_namespace(activation.context.gc_context, namespace) + this.set_namespace(activation.context.gc_context, namespace); + this.set_is_qname(activation.context.gc_context, true); } Ok(Value::Undefined) diff --git a/core/src/avm2/object/qname_object.rs b/core/src/avm2/object/qname_object.rs index 35a75a638..2648928df 100644 --- a/core/src/avm2/object/qname_object.rs +++ b/core/src/avm2/object/qname_object.rs @@ -99,6 +99,12 @@ impl<'gc> QNameObject<'gc> { name.local_name().unwrap_or("*".into()) } + pub fn set_is_qname(&self, mc: &Mutation<'gc>, is_qname: bool) { + let mut write = self.0.write(mc); + + write.name.set_is_qname(is_qname); + } + pub fn uri(&self) -> Option> { let read = self.0.read();