Files
RedHotRoast-ios/HybridCLRData/LocalIl2CppData-OSXEditor/il2cpp/libil2cpp/vm/LastError.cpp
T
2026-07-17 14:03:00 +08:00

39 lines
1.0 KiB
C++

#include "LastError.h"
#include "Thread.h"
#include "os/LastError.h"
namespace il2cpp
{
namespace vm
{
int32_t LastError::s_LastErrorThreadLocalStorageOffset = -1;
uint32_t LastError::GetLastError()
{
if (s_LastErrorThreadLocalStorageOffset == -1)
return 0;
return *(uint32_t*)Thread::GetThreadStaticData(s_LastErrorThreadLocalStorageOffset);
}
void LastError::SetLastError(uint32_t error)
{
IL2CPP_ASSERT(s_LastErrorThreadLocalStorageOffset != -1);
uint32_t* lastErrorTls = (uint32_t*)Thread::GetThreadStaticData(s_LastErrorThreadLocalStorageOffset);
*lastErrorTls = error;
}
void LastError::StoreLastError()
{
SetLastError(os::LastError::GetLastError());
}
void LastError::InitializeLastErrorThreadStatic()
{
if (s_LastErrorThreadLocalStorageOffset == -1)
s_LastErrorThreadLocalStorageOffset = Thread::AllocThreadStaticData(sizeof(uint32_t));
}
} /* namespace vm */
} /* namespace il2cpp */