diff options
-rw-r--r-- | compiler/elf_writer_mclinker.cc | 5 | ||||
-rw-r--r-- | runtime/arch/arm64/quick_entrypoints_arm64.S | 2 | ||||
-rw-r--r-- | runtime/arch/x86_64/quick_entrypoints_x86_64.S | 4 | ||||
-rw-r--r-- | runtime/handle_scope-inl.h | 4 |
4 files changed, 8 insertions, 7 deletions
diff --git a/compiler/elf_writer_mclinker.cc b/compiler/elf_writer_mclinker.cc index eb9b2306d5..aa4a5b2c07 100644 --- a/compiler/elf_writer_mclinker.cc +++ b/compiler/elf_writer_mclinker.cc @@ -361,8 +361,9 @@ void ElfWriterMclinker::FixupOatMethodOffsets(const std::vector<const DexFile*>& ClassLinker* linker = Runtime::Current()->GetClassLinker(); // Unchecked as we hold mutator_lock_ on entry. ScopedObjectAccessUnchecked soa(Thread::Current()); - Handle<mirror::DexCache> dex_cache(soa.Self(), linker->FindDexCache(dex_file)); - Handle<mirror::ClassLoader> class_loader(soa.Self(), nullptr); + StackHandleScope<2> hs(soa.Self()); + Handle<mirror::DexCache> dex_cache(hs.NewHandle(linker->FindDexCache(dex_file))); + auto class_loader(hs.NewHandle<mirror::ClassLoader>(nullptr)); method = linker->ResolveMethod(dex_file, method_idx, dex_cache, class_loader, NULL, invoke_type); CHECK(method != NULL); } diff --git a/runtime/arch/arm64/quick_entrypoints_arm64.S b/runtime/arch/arm64/quick_entrypoints_arm64.S index 2a21144f07..3d93399306 100644 --- a/runtime/arch/arm64/quick_entrypoints_arm64.S +++ b/runtime/arch/arm64/quick_entrypoints_arm64.S @@ -1444,7 +1444,7 @@ END art_quick_resolution_trampoline * | RDI/Method* | <- X0 * #-------------------# * | local ref cookie | // 4B - * | handle scope size | // 4B + * | handle scope size | // 4B * #-------------------# * | JNI Call Stack | * #-------------------# <--- SP on native call diff --git a/runtime/arch/x86_64/quick_entrypoints_x86_64.S b/runtime/arch/x86_64/quick_entrypoints_x86_64.S index 73214ea6c5..9c86c75ddd 100644 --- a/runtime/arch/x86_64/quick_entrypoints_x86_64.S +++ b/runtime/arch/x86_64/quick_entrypoints_x86_64.S @@ -1050,12 +1050,12 @@ END_FUNCTION art_quick_resolution_trampoline * | Return | * | Callee-Save Data | * #-------------------# - * | handle scope | + * | handle scope | * #-------------------# * | Method* | <--- (1) * #-------------------# * | local ref cookie | // 4B - * | handle scope size | // 4B TODO: roll into call stack alignment? + * | handle scope size | // 4B TODO: roll into call stack alignment? * #-------------------# * | JNI Call Stack | * #-------------------# <--- SP on native call diff --git a/runtime/handle_scope-inl.h b/runtime/handle_scope-inl.h index b9b51fde1e..634f2be666 100644 --- a/runtime/handle_scope-inl.h +++ b/runtime/handle_scope-inl.h @@ -25,7 +25,7 @@ namespace art { template<size_t kNumReferences> -StackHandleScope<kNumReferences>::StackHandleScope(Thread* self) +inline StackHandleScope<kNumReferences>::StackHandleScope(Thread* self) : HandleScope(kNumReferences), self_(self), pos_(0) { // TODO: Figure out how to use a compile assert. DCHECK_EQ(OFFSETOF_MEMBER(HandleScope, references_), @@ -37,7 +37,7 @@ StackHandleScope<kNumReferences>::StackHandleScope(Thread* self) } template<size_t kNumReferences> -StackHandleScope<kNumReferences>::~StackHandleScope() { +inline StackHandleScope<kNumReferences>::~StackHandleScope() { HandleScope* top_handle_scope = self_->PopHandleScope(); DCHECK_EQ(top_handle_scope, this); } |