From 2e4085fcb3223769ee502b8aa9d2f75f1b5997cc Mon Sep 17 00:00:00 2001 From: Lord-McSweeney Date: Tue, 3 Sep 2024 18:10:05 -0700 Subject: [PATCH] avm2: Test for namespace in E4X equality check --- core/src/avm2/e4x.rs | 4 ++++ .../avm2/xml_equals_namespace_check/output.txt | 2 ++ .../swfs/avm2/xml_equals_namespace_check/test.swf | Bin 0 -> 533 bytes .../avm2/xml_equals_namespace_check/test.toml | 1 + 4 files changed, 7 insertions(+) create mode 100644 tests/tests/swfs/avm2/xml_equals_namespace_check/output.txt create mode 100644 tests/tests/swfs/avm2/xml_equals_namespace_check/test.swf create mode 100644 tests/tests/swfs/avm2/xml_equals_namespace_check/test.toml diff --git a/core/src/avm2/e4x.rs b/core/src/avm2/e4x.rs index 6aa189143928..99b970071139 100644 --- a/core/src/avm2/e4x.rs +++ b/core/src/avm2/e4x.rs @@ -262,6 +262,10 @@ impl<'gc> E4XNode<'gc> { return false; } + if self.namespace().map(|ns| ns.uri) != other.namespace().map(|ns| ns.uri) { + return false; + } + let this = self.0.read(); let other = other.0.read(); diff --git a/tests/tests/swfs/avm2/xml_equals_namespace_check/output.txt b/tests/tests/swfs/avm2/xml_equals_namespace_check/output.txt new file mode 100644 index 000000000000..da29283aaa47 --- /dev/null +++ b/tests/tests/swfs/avm2/xml_equals_namespace_check/output.txt @@ -0,0 +1,2 @@ +true +false diff --git a/tests/tests/swfs/avm2/xml_equals_namespace_check/test.swf b/tests/tests/swfs/avm2/xml_equals_namespace_check/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..8d03c97300af859e85d5f08eaa4fe5e863a890e9 GIT binary patch literal 533 zcmV+w0_y!kS5pz30{{ScoQ;xiZ_+><$A5R%<7lA+HU#WuoXZlUG4#O12V@dAFp6>R z!F;eM#uj#jnyw|ZB75p9@%dhaZ-Fh*x3QOi*LIP0GwP-3@9%wn-)nCM^dmsw8$b;~ zx0D5d4qhx4-^)V+@p>n|Y$098a83RJuu+Gi`O zNhlkM-`r}) zE&Yi-_1nHDcFbj%`0?&`L~7n3HE)xeX;SkV>1ubIhVrQ5^}l%ki^H=9K5Z1UsDde} zkxHhLuVQ1xC>TYfWULx%2BBqwu#OSSs#-3u6J@24XP7Xos01-e8D)%S8C4n8SSH8t z9kqt#<;C)@>JVFm6jcEvT@?8U2w;TNhjT8#!rW51mE{)WR)$-YTZ(*+;9jyu=#>Nz zqUGMq`6V(yzeMY3W!?izds5j$Uw=qjmG