transform sgen_get_descriptor to parallel safe version in job_major_mod_union_preclea...
commit16b53fa04c9824cda209b35febdc51b4876fd1a0
authorThomas Mijieux <tmijieux@users.noreply.github.com>
Mon, 3 Jan 2022 18:57:59 +0000 (3 19:57 +0100)
committerGitHub <noreply@github.com>
Mon, 3 Jan 2022 18:57:59 +0000 (3 13:57 -0500)
tree48a24c8bd44eabb59b0de85c1f9089b1c179ae55
parent73a3a8adb2b39b0598dab3fec135b46f2bf19fc5
transform sgen_get_descriptor to parallel safe version in job_major_mod_union_preclean (#21384)

fixes #21369
Related to https://github.com/xamarin/xamarin-android/issues/6546

job_major_mod_union_preclean can race with the tarjan bridge
implementation that changes the vtable pointer by settings the three
lower bits. this results in invalid loading of the vtable
(shifted by 7 bytes)  which in turn give a wrong desc to the scan
functions

This change is released under the MIT license.
mono/sgen/sgen-cardtable.c
mono/sgen/sgen-marksweep.c