forked from amazingfate/loongoffice
VC runtime was substantially refactored on MSVC 14.0. Among other, _tiddata structure defined in crt/src/mtdll.h was replaced with __vcrt_getptd defined in crt/src/vcruntime/vcruntime_internal.h. All members before unsigned long _NLG_dwCode were removed, so that the approach to access the member void * _tpxcptinfoptrs; /* ptr to exception info pointers */ with __pxcptinfoptrs() and compute the offset to the _curexception member of _tiddata doesn't work on MSVC 14.0. As of MSVC 14.0 __vcrt_getptd symbol isn't exported but Microsoft have introduced methods to access current exception, current exception context and processing throw (the later can be accessed through C++17 std::unhandled_exceptions() that was made available in MSVC 14.0): * __current_exception() * __current_exception_context() * __processing_throw() aka std::unhandled_exceptions() Make use of __current_exception() which we can hope will be maintained going forward. Change-Id: Ibfffa5fba62d6928328ac976cb1b24937277363e Reviewed-on: https://gerrit.libreoffice.org/18475 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Ostrovsky <david@ostrovsky.org>