Fix use-after-free issue for dexfile

When we open a dex file, class linker will save dex file address in
dex_caches_. Then when GC occurs, the dex file will be freed in
art::DexFile_closeDexFile, but dex file address is still in dex_caches_.
When some tries to iterate over dex_caches_, HWASAN complains.

Therefore remove the dexfile in dex_caches_ when we delete the dex file.

Ignore-AOSP-First: Security fix

Bug: 238962046
Test: manually
Change-Id: I5bb09a906737db986ead9813695918e06ab590c4
3 files changed