From c069a30d42aefd902c20e8bc09dfad1683f07ded Mon Sep 17 00:00:00 2001 From: Orion Hodson Date: Wed, 18 Jan 2017 09:23:12 +0000 Subject: ART: invoke-custom support Adds invoke-custom instruction to the interpreter. Bug: 33191717,30550796 Test: art/test/run-test --host 952 Change-Id: I3b754128649a8b3a00ade79ba2518d0e377f3a1e --- patchoat/patchoat.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'patchoat/patchoat.cc') diff --git a/patchoat/patchoat.cc b/patchoat/patchoat.cc index 9a73830f99..b9be5f2605 100644 --- a/patchoat/patchoat.cc +++ b/patchoat/patchoat.cc @@ -688,6 +688,16 @@ void PatchOat::PatchDexFileArrays(mirror::ObjectArray* img_roots orig_dex_cache->FixupResolvedMethodTypes(RelocatedCopyOf(orig_method_types), RelocatedPointerVisitor(this)); } + + GcRoot* orig_call_sites = orig_dex_cache->GetResolvedCallSites(); + GcRoot* relocated_call_sites = RelocatedAddressOfPointer(orig_call_sites); + copy_dex_cache->SetField64( + mirror::DexCache::ResolvedCallSitesOffset(), + static_cast(reinterpret_cast(relocated_call_sites))); + if (orig_call_sites != nullptr) { + orig_dex_cache->FixupResolvedCallSites(RelocatedCopyOf(orig_call_sites), + RelocatedPointerVisitor(this)); + } } } -- cgit v1.2.3-59-g8ed1b