mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-03 22:38:41 +09:00
Issue #1053 - Remove android support from memory
This commit is contained in:
parent
bf056898b5
commit
f1182eaec9
15 changed files with 19 additions and 374 deletions
|
|
@ -7,9 +7,6 @@
|
|||
|
||||
#include "mozilla/mozalloc_abort.h"
|
||||
|
||||
#ifdef ANDROID
|
||||
# include <android/log.h>
|
||||
#endif
|
||||
#ifdef MOZ_WIDGET_ANDROID
|
||||
# include "APKOpen.h"
|
||||
# include "dlfcn.h"
|
||||
|
|
@ -21,40 +18,11 @@
|
|||
void
|
||||
mozalloc_abort(const char* const msg)
|
||||
{
|
||||
#ifndef ANDROID
|
||||
fputs(msg, stderr);
|
||||
fputs("\n", stderr);
|
||||
#else
|
||||
__android_log_print(ANDROID_LOG_ERROR, "Gecko", "mozalloc_abort: %s", msg);
|
||||
#endif
|
||||
#ifdef MOZ_WIDGET_ANDROID
|
||||
abortThroughJava(msg);
|
||||
#endif
|
||||
MOZ_CRASH();
|
||||
}
|
||||
|
||||
#ifdef MOZ_WIDGET_ANDROID
|
||||
template <size_t N>
|
||||
void fillAbortMessage(char (&msg)[N], uintptr_t retAddress) {
|
||||
/*
|
||||
* On Android, we often don't have reliable backtrace when crashing inside
|
||||
* abort(). Therefore, we try to find out who is calling abort() and add
|
||||
* that to the message.
|
||||
*/
|
||||
Dl_info info = {};
|
||||
dladdr(reinterpret_cast<void*>(retAddress), &info);
|
||||
|
||||
const char* const module = info.dli_fname ? info.dli_fname : "";
|
||||
const char* const base_module = strrchr(module, '/');
|
||||
const void* const module_offset =
|
||||
reinterpret_cast<void*>(retAddress - uintptr_t(info.dli_fbase));
|
||||
const char* const sym = info.dli_sname ? info.dli_sname : "";
|
||||
|
||||
snprintf(msg, sizeof(msg), "abort() called from %s:%p (%s)",
|
||||
base_module ? base_module + 1 : module, module_offset, sym);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(XP_UNIX) && !defined(MOZ_ASAN)
|
||||
// Define abort() here, so that it is used instead of the system abort(). This
|
||||
// lets us control the behavior when aborting, in order to get better results
|
||||
|
|
@ -70,12 +38,7 @@ void fillAbortMessage(char (&msg)[N], uintptr_t retAddress) {
|
|||
// result, ASan will just exit(1) instead of aborting.
|
||||
extern "C" void abort(void)
|
||||
{
|
||||
#ifdef MOZ_WIDGET_ANDROID
|
||||
char msg[64] = {};
|
||||
fillAbortMessage(msg, uintptr_t(__builtin_return_address(0)));
|
||||
#else
|
||||
const char* const msg = "Redirecting call to abort() to mozalloc_abort\n";
|
||||
#endif
|
||||
|
||||
mozalloc_abort(msg);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue