diff options
Diffstat (limited to 'runtime')
| -rw-r--r-- | runtime/Android.mk | 2 | ||||
| -rw-r--r-- | runtime/arch/arm64/quick_entrypoints_arm64.S | 1 | ||||
| -rw-r--r-- | runtime/arch/x86/quick_entrypoints_x86.S | 5 | ||||
| -rw-r--r-- | runtime/arch/x86_64/quick_entrypoints_x86_64.S | 1 | ||||
| -rw-r--r-- | runtime/java_vm_ext.cc | 5 | ||||
| -rw-r--r-- | runtime/zip_archive.cc | 2 |
6 files changed, 9 insertions, 7 deletions
diff --git a/runtime/Android.mk b/runtime/Android.mk index 5ed6955185..19079cb928 100644 --- a/runtime/Android.mk +++ b/runtime/Android.mk @@ -478,7 +478,7 @@ $$(ENUM_OPERATOR_OUT_GEN): $$(GENERATED_SRC_DIR)/%_operator_out.cc : $(LOCAL_PAT # For liblog, atrace, properties, ashmem, set_sched_policy and socket_peer_is_trusted. LOCAL_SHARED_LIBRARIES += libcutils else # host - LOCAL_SHARED_LIBRARIES += libziparchive-host + LOCAL_SHARED_LIBRARIES += libziparchive-host libz-host # For ashmem_create_region. LOCAL_SHARED_LIBRARIES += libcutils endif diff --git a/runtime/arch/arm64/quick_entrypoints_arm64.S b/runtime/arch/arm64/quick_entrypoints_arm64.S index f3c111f99f..614936b93f 100644 --- a/runtime/arch/arm64/quick_entrypoints_arm64.S +++ b/runtime/arch/arm64/quick_entrypoints_arm64.S @@ -1206,6 +1206,7 @@ ENTRY art_quick_aput_obj lsr x0, x0, #7 strb w3, [x3, x0] ret + .cfi_adjust_cfa_offset 32 // 4 restores after cbz for unwinding. .Lthrow_array_store_exception: ldp x2, x30, [sp, #16] .cfi_restore x2 diff --git a/runtime/arch/x86/quick_entrypoints_x86.S b/runtime/arch/x86/quick_entrypoints_x86.S index 98d08129cf..c9bc9779dc 100644 --- a/runtime/arch/x86/quick_entrypoints_x86.S +++ b/runtime/arch/x86/quick_entrypoints_x86.S @@ -1185,9 +1185,9 @@ DEFINE_FUNCTION art_quick_aput_obj pushl MIRROR_OBJECT_CLASS_OFFSET(%edx) // pass arg2 - type of the value to be stored #endif CFI_ADJUST_CFA_OFFSET(4) - PUSH ebx // pass arg1 - component type of the array + PUSH ebx // pass arg1 - component type of the array call SYMBOL(artIsAssignableFromCode) // (Class* a, Class* b) - addl LITERAL(16), %esp // pop arguments + addl LITERAL(16), %esp // pop arguments CFI_ADJUST_CFA_OFFSET(-16) testl %eax, %eax jz .Lthrow_array_store_exception @@ -1200,6 +1200,7 @@ DEFINE_FUNCTION art_quick_aput_obj shrl LITERAL(7), %eax movb %dl, (%edx, %eax) ret + CFI_ADJUST_CFA_OFFSET(12) // 3 POP after the jz for unwinding. .Lthrow_array_store_exception: POP edx POP ecx diff --git a/runtime/arch/x86_64/quick_entrypoints_x86_64.S b/runtime/arch/x86_64/quick_entrypoints_x86_64.S index 259cf97407..7d86c3accd 100644 --- a/runtime/arch/x86_64/quick_entrypoints_x86_64.S +++ b/runtime/arch/x86_64/quick_entrypoints_x86_64.S @@ -1256,6 +1256,7 @@ DEFINE_FUNCTION art_quick_aput_obj movb %dl, (%rdx, %rdi) // Note: this assumes that top 32b of %rdi are zero // movb %dl, (%rdx, %rdi) ret + CFI_ADJUST_CFA_OFFSET(32 + 4 * 8) // Reset unwind info so following code unwinds. .Lthrow_array_store_exception: RESTORE_FP_CALLEE_SAVE_FRAME // Restore arguments. diff --git a/runtime/java_vm_ext.cc b/runtime/java_vm_ext.cc index eb9c32d7ad..f1deacf39a 100644 --- a/runtime/java_vm_ext.cc +++ b/runtime/java_vm_ext.cc @@ -132,6 +132,8 @@ class SharedLibrary { } void* FindSymbol(const std::string& symbol_name) { + CHECK(!NeedsNativeBridge()); + return dlsym(handle_, symbol_name.c_str()); } @@ -234,9 +236,6 @@ class Libraries { fn = library->FindSymbol(jni_long_name); } } - if (fn == nullptr) { - fn = library->FindSymbol(jni_long_name); - } if (fn != nullptr) { VLOG(jni) << "[Found native code for " << PrettyMethod(m) << " in \"" << library->GetPath() << "\"]"; diff --git a/runtime/zip_archive.cc b/runtime/zip_archive.cc index 88c1f69bf5..9daaf8e204 100644 --- a/runtime/zip_archive.cc +++ b/runtime/zip_archive.cc @@ -124,7 +124,7 @@ ZipEntry* ZipArchive::Find(const char* name, std::string* error_msg) const { // Resist the urge to delete the space. <: is a bigraph sequence. std::unique_ptr< ::ZipEntry> zip_entry(new ::ZipEntry); - const int32_t error = FindEntry(handle_, ZipEntryName(name), zip_entry.get()); + const int32_t error = FindEntry(handle_, ZipString(name), zip_entry.get()); if (error) { *error_msg = std::string(ErrorCodeString(error)); return nullptr; |