1234567891011121314151617181920212223242526272829303132333435363738 |
- #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 */
|