From a4b4de7835bcca8b454770d034083734cceb871a Mon Sep 17 00:00:00 2001 From: MrCheeze Date: Sun, 9 Mar 2025 21:06:52 -0400 Subject: [PATCH] avm2: Fix getChildByName to be case sensitive (close #19765) --- .../flash/display/display_object_container.rs | 2 +- .../output.txt | 5 +++++ .../test.swf | Bin 0 -> 1413 bytes .../test.toml | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/output.txt create mode 100644 tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/test.swf create mode 100644 tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/test.toml diff --git a/core/src/avm2/globals/flash/display/display_object_container.rs b/core/src/avm2/globals/flash/display/display_object_container.rs index d352ae51038eb..a0bfd832343f2 100644 --- a/core/src/avm2/globals/flash/display/display_object_container.rs +++ b/core/src/avm2/globals/flash/display/display_object_container.rs @@ -169,7 +169,7 @@ pub fn get_child_by_name<'gc>( .and_then(|this| this.as_container()) { let name = args.get_string(activation, 0)?; - if let Some(child) = dobj.child_by_name(&name, false) { + if let Some(child) = dobj.child_by_name(&name, true) { return Ok(child.object2()); } else { return Ok(Value::Null); diff --git a/tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/output.txt b/tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/output.txt new file mode 100644 index 0000000000000..5d47b5e64a110 --- /dev/null +++ b/tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/output.txt @@ -0,0 +1,5 @@ +//this.getChildByName("child_CLIP") +null +//this.addChild(newChild) +//this.getChildByName("new_CHILD") +null diff --git a/tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/test.swf b/tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..938da3e2bfc8a2611a9fe0a7263d675cfdcece65 GIT binary patch literal 1413 zcmV;01$z2JS5qrf3IG6joQ+mZY}-^Ee}1uJJKtGbH%-&8H0zo+OPsE3BL!BPcBP|T ziVCcnS~X7c(ij{&v)!(pG-(2f0|IHX6PTsl>WgRM3v<`ZBck7U%F1Yiq%S`)0zfBZxC{#5{haqSjA z1HE11*Z+(@qNgs+yn1OS05Sn^Vff~+!`GOf9x*@O_%3zh+sEMiV-Rhl{qTG7_c7qRc%7hb9UuE5_wbuvK=kT3k-K;C-Ju7- zd*|{y?1#jap(i_6Z9m_c{v?2dvp$>x#7TW*w-fjU#xdTqx8dgiffb>z{`ec@OQKX* z$xC7dY_&dNj2iIe199W^7UG1f})f~Zv_VUwLx)+!Md_-LM=-+om2|z5N+g7Wl0)&lQck?Sa3V3n z^CuIzHBr(<*=efQbWze;%vywe9%-7G6D3jKY}ALe_jRS>G7(Z$Mb#Q$9m%@pse=t2 zsj?u|&5Ae%QZgZxk=6<+}fhD#|$P z)jg=-5J;_aHKAOwAS7%1X=`2+beyMWe;CJ&_FEv5SB?2LC2L|mzgmy#`E8V? z_5(AY+MoG@@&%l-jv@zzljb{tv*+ zjF+Jo^n3}aZHYu}mGqh`uQxA95-NCvLgB2jUKaAISke2MuP6(!o1wfeFkrOl+RVn!)h?rV2+r2bClL!z6Cq%Y#uCZ_JgNh&0mbsC&RIu6Y=2 z?As{Q5QU!;WY1AJI`lk>BBKovuV-0rQ2o!y`k&JnD~dGz-ZX>>vxk1GE-q*JXpRjyIij5ocqu2<%Cs>Y*UkjE4lc-aav`pZ z>E?R4UapS`GyP12Im!)i$GAZz$_;VDOf2XO9uLNYi69?L21h6_^;*zNy-5zx3`tO| z!|8%BN(;h{+%P5Rjuf*mDTH$jspY0oJdo~Gf;G)&QOjBSDJIAmRr z9fPbNvT4XpL3R|fZpgOSXmXrQL4@SMitC{U(U27Ywd@i T*#{M?n(oWmf2#igVZREzTr$1* literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/test.toml b/tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/test.toml new file mode 100644 index 0000000000000..dbee897f5863d --- /dev/null +++ b/tests/tests/swfs/avm2/displayobjectcontainer_getchildbyname_wrongcase/test.toml @@ -0,0 +1 @@ +num_frames = 1