Search Issue Tracker

Fixed

Votes

0

Found in

2022.3.4f1

2023.1.3f1

Issue ID

UUM-41834

Regression

Yes

[Android] [IL2CPP] Accessing a particle system's frameOverTime.curve when GameObject has been disabled crashes a Player built with IL2CPP

--

-

Reproduction steps:
1. Open the attached project "ReproProj"
2. Build And Run the “/Assets/test.unity” Scene
3. Tap the white button
4. Tap the white button once again

Expected result: The player does not crash and continues to run
Actual result: The player crashes

Reproducible with: 2022.2.14f1, 2022.3.4f1
Not reproducible with: 2021.3.28f1, 2022.2.13f1, 2023.1.3f1, 2023.2.0a21

Reproducible with devices:
VLNQA00318, Oneplus OnePlus 7 Pro (GM1913), Android 11, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640

Not reproducible with devices:
VLNQA00332, Samsung Galaxy XCover4 (SM-G390F), Android 9, CPU: Exynos 7 Quad 7570, GPU: Mali-T720
VLNQA00325, Samsung Galaxy Note10 (SM-N970F), Android 12, CPU: Exynos 9 (9825), GPU: Mali-G76
VLNQA00231, Samsung Galaxy A5(2017) (SM-A520F), Android 8.0.0, CPU: Exynos 7 Octa 7880, GPU: Mali-T830
VLNQA00231, Huawei HUAWEI Mate 20 Pro (LYA-L29), Android 9, CPU: HiSilicon Kirin 980, GPU: Mali-G76

Testing environment: Windows 10 Enterprise 21H2

Notes:
- Does not reproduce with Mono Scripting Backend, but the button is rendered lower than with IL2CPP
- This might be a GC issue in IL2CPP, where accessing a destroyed animation curve throws a buffer overflow exception
- This reproduces while using UI extensions + UI particle system with a sprite sheet active (with the curve)
- Temporary workaround is to store the frameOverTime struct locally and not access the actual PS one

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.