Fix Mono compilation on Windows/Ming

(cherry picked from commit 83140541dc91c29a288d7dd71044780b50b2cc4b)
This commit is contained in:
Hein-Pieter van Braam 2018-07-28 23:01:38 +02:00
parent 317dee95de
commit 0deb8dda51
2 changed files with 19 additions and 10 deletions

View file

@ -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;