-
Mike Kaganski yazdı
Since the __CxxDetectRethrow may increment __ProcessingThrow, which then must be decremented in __CxxUnregisterExceptionObject, and the latter does many other funny things with exception handling CRT machinery, we cannot use those internal functions (neither alone, nor together), or we end up breaking runtime's expectations: the runtime code checks __ProcessingThrow left and right, expecting its non-0 value to indicate "we are unwinding... possibly called from a dtor()". In this case, e.g., std::current_exception returns nullptr inside catch block. This creates our own copy of __CxxDetectRethrow, which does not mangle the global state, and just performs the same checks. This is a dirty hack, and it relies on current layout of the exception description layout - so must be synchronized in the event of changes! Change-Id: I2c475fbc2468073b796c7e9d0f4dfcd315896489 Reviewed-on: https://gerrit.libreoffice.org/58730 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
8313116f
Adı |
Son kayıt (commit)
|
Son güncelleme |
---|---|---|
.. | ||
inc | ||
source | ||
CustomTarget_gcc3_linux_arm.mk | ||
Jar_java_uno.mk | ||
Library_cpp_uno.mk | ||
Library_java_uno.mk | ||
Makefile | ||
Module_bridges.mk | ||
Package_jnilib_java_uno.mk | ||
README |