Files
loongoffice/bridges/source/cpp_uno/msvc_win32_intel
David Ostrovsky 1aad95eb96 Actually fix uno bridge on MSVC 14.0
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>
2015-09-12 09:17:15 +00:00
..