diff options
author | Ignacio Etcheverry <neikeq@users.noreply.github.com> | 2018-07-29 22:36:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-29 22:36:44 +0200 |
commit | b3919dcb44988c72a46e3b97beb41fba68219d4c (patch) | |
tree | 9871ca45c57d21bb25d1df59586182528b7a9efa /modules/mono/utils/thread_local.cpp | |
parent | 317dee95de84f3dca47b5ecc386975d6e37a9702 (diff) | |
parent | 0deb8dda517aee11280bcaf12d96456d5a404ad3 (diff) | |
download | redot-engine-b3919dcb44988c72a46e3b97beb41fba68219d4c.tar.gz |
Merge pull request #20582 from hpvb/fix-mono-mingw
Fix Mono compilation on Windows/Ming
Diffstat (limited to 'modules/mono/utils/thread_local.cpp')
-rw-r--r-- | modules/mono/utils/thread_local.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/modules/mono/utils/thread_local.cpp b/modules/mono/utils/thread_local.cpp index 6f8b0f90bc..248f24c855 100644 --- a/modules/mono/utils/thread_local.cpp +++ b/modules/mono/utils/thread_local.cpp @@ -63,7 +63,13 @@ struct ThreadLocalStorage::Impl { #endif } - Impl(void (*p_destr_callback_func)(void *)) { +#ifdef WINDOWS_ENABLED +#define _CALLBACK_FUNC_ __stdcall +#else +#define _CALLBACK_FUNC_ +#endif + + Impl(void _CALLBACK_FUNC_ (*p_destr_callback_func)(void *)) { #ifdef WINDOWS_ENABLED dwFlsIndex = FlsAlloc(p_destr_callback_func); ERR_FAIL_COND(dwFlsIndex == FLS_OUT_OF_INDEXES); @@ -89,10 +95,12 @@ void ThreadLocalStorage::set_value(void *p_value) const { pimpl->set_value(p_value); } -void ThreadLocalStorage::alloc(void (*p_destr_callback)(void *)) { +void ThreadLocalStorage::alloc(void _CALLBACK_FUNC_ (*p_destr_callback)(void *)) { pimpl = memnew(ThreadLocalStorage::Impl(p_destr_callback)); } +#undef _CALLBACK_FUNC_ + void ThreadLocalStorage::free() { memdelete(pimpl); pimpl = NULL; |