summaryrefslogtreecommitdiff
path: root/test/ProfileTestMultiDex/Second.java
diff options
context:
space:
mode:
authorAlex Light <allight@google.com>2020-01-08 15:18:25 -0800
committerTreehugger Robot <treehugger-gerrit@google.com>2020-01-09 00:55:08 +0000
commit163652e59b452d10ab7d282024d11de7b5796a26 (patch)
tree1c7c3f8c4c1a33e5bc1baea2ed32fde9202decdc /test/ProfileTestMultiDex/Second.java
parent14d1307c1b9f4a9e32665100dde5f1454ec197a7 (diff)
Fix redefinition causing corrupt j.l.r.Field objects
During (non-structural) redefinition we change the dex-field-indexs of all the ArtField's of the class being redefined. These ids are used by the java/lang/reflect/Field class to avoid having to store a pointer to the ArtField. This meant that when a class was redefined any existing j.l.r.Field objects pointing to its fields are rendered invalid, due to the dex_field_index no longer being present on the class. To fix this we simply walk the heap during class redefinition and update any j.l.r.Field objects of the redefined class that we find. Test: ./test.py --host Bug: 147310999 Bug: 147338896 Change-Id: I3b038b4e669f8b7b4e804238248b4d03780ce2ca
Diffstat (limited to 'test/ProfileTestMultiDex/Second.java')
0 files changed, 0 insertions, 0 deletions