fixes for Android

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
This commit is contained in:
Esteban Papp
2021-08-20 19:40:13 -07:00
parent c07b9d31bf
commit 7558a3d233
6 changed files with 6 additions and 63 deletions
-54
View File
@@ -164,60 +164,6 @@ SSystemCVars g_cvars;
#include <AzCore/Component/ComponentApplication.h>
#include "AZCoreLogSink.h"
#if defined(ANDROID)
namespace
{
struct Callstack
{
Callstack()
: addrs(NULL)
, ignore(0)
, count(0)
{
}
Callstack(void** addrs, size_t ignore, size_t count)
{
this->addrs = addrs;
this->ignore = ignore;
this->count = count;
}
void** addrs;
size_t ignore;
size_t count;
};
static _Unwind_Reason_Code trace_func(struct _Unwind_Context* context, void* arg)
{
Callstack* cs = static_cast<Callstack*>(arg);
if (cs->count)
{
void* ip = (void*) _Unwind_GetIP(context);
if (ip)
{
if (cs->ignore)
{
cs->ignore--;
}
else
{
cs->addrs[0] = ip;
cs->addrs++;
cs->count--;
}
}
}
return _URC_NO_REASON;
}
static int Backtrace(void** addrs, size_t ignore, size_t size)
{
Callstack cs(addrs, ignore, size);
_Unwind_Backtrace(trace_func, (void*) &cs);
return size - cs.count;
}
}
#endif
/////////////////////////////////////////////////////////////////////////////////
// System Implementation.
//////////////////////////////////////////////////////////////////////////