Clean up declaration of __cxa_get_globals

At least Clang trunk towards 3.4 now rejects incompatible declarations of the
same extern "C" function in different namespaces, so that trick of getting at
the function that is exported by libstdc++ but only rudimentarily if at all
exposed in cxxabi.h no longer worked.

TODO: This change should be reflected in any other bridges where it is relevant,
too.

Change-Id: Ie3ccbdb7d75cc98636d02c0435958532620724f2
This commit is contained in:
Stephan Bergmann
2013-06-20 13:57:45 +02:00
parent e79b671507
commit 5ba3d1740b
5 changed files with 54 additions and 9 deletions

View File

@@ -289,8 +289,11 @@ static void cpp_call(
}
catch (...)
{
// fill uno exception
fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
// fill uno exception
fillUnoException(
reinterpret_cast< CPPU_CURRENT_NAMESPACE::__cxa_eh_globals * >(
__cxxabiv1::__cxa_get_globals())->caughtExceptions,
*ppUnoExc, pThis->getBridge()->getCpp2Uno());
// temporary params
for ( ; nTempIndizes--; )