diff options
4 files changed, 27 insertions, 12 deletions
diff --git a/bridges/source/cpp_uno/cc50_solaris_intel/except.cxx b/bridges/source/cpp_uno/cc50_solaris_intel/except.cxx index d5efb45583da..ea4e3f1efb40 100644 --- a/bridges/source/cpp_uno/cc50_solaris_intel/except.cxx +++ b/bridges/source/cpp_uno/cc50_solaris_intel/except.cxx @@ -2,9 +2,9 @@ * * $RCSfile: except.cxx,v $ * - * $Revision: 1.7 $ + * $Revision: 1.8 $ * - * last change: $Author: pl $ $Date: 2001-06-21 10:11:26 $ + * last change: $Author: pl $ $Date: 2001-07-05 14:38:52 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -382,6 +382,7 @@ void cc50_solaris_intel_raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cp // will be released in generated dtor // alignment to 8 pExcSpace[0] = pTypeDescr; + pExcSpace[1] = (void*)0xbadfad; uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp ); // destruct uno exception diff --git a/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx b/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx index 872493019120..d77b5d0b9980 100644 --- a/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx +++ b/bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx @@ -2,9 +2,9 @@ * * $RCSfile: uno2cpp.cxx,v $ * - * $Revision: 1.7 $ + * $Revision: 1.8 $ * - * last change: $Author: dbo $ $Date: 2001-07-03 16:11:07 $ + * last change: $Author: pl $ $Date: 2001-07-05 14:38:52 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -287,9 +287,16 @@ static inline void cpp_call( } catch( ... ) { + void* pExc = __Crun::ex_get(); + const char* pName; + if( ((void**)pExc)[-1] != (void*)0xbadfad ) + pName = __Cimpl::ex_name(); + else + pName = *(const char**)((void**)pExc)[-17]; + // get exception - cc50_solaris_intel_fillUnoException( __Crun::ex_get(), - __Cimpl::ex_name(), + cc50_solaris_intel_fillUnoException( pExc, + pName, *ppUnoExc, &pThis->pBridge->aCpp2Uno ); // temporary params diff --git a/bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx b/bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx index ebdc932d7f76..31f01616fd54 100644 --- a/bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx +++ b/bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx @@ -2,9 +2,9 @@ * * $RCSfile: except.cxx,v $ * - * $Revision: 1.6 $ + * $Revision: 1.7 $ * - * last change: $Author: pl $ $Date: 2001-05-11 09:03:32 $ + * last change: $Author: pl $ $Date: 2001-07-05 14:36:39 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -384,6 +384,7 @@ void cc50_solaris_sparc_raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cp // will be released in generated dtor // alignment to 8 pExcSpace[0] = pTypeDescr; + pExcSpace[1] = (void*)0xbadfad; uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp ); // destruct uno exception diff --git a/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx b/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx index 9d361dcefb4f..e514473c18e0 100644 --- a/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx +++ b/bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx @@ -2,9 +2,9 @@ * * $RCSfile: uno2cpp.cxx,v $ * - * $Revision: 1.9 $ + * $Revision: 1.10 $ * - * last change: $Author: dbo $ $Date: 2001-07-03 16:11:07 $ + * last change: $Author: pl $ $Date: 2001-07-05 14:36:39 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -276,9 +276,15 @@ static void cpp_call( } catch( ... ) { + void* pExc = __Crun::ex_get(); + const char* pName; + if( ((void**)pExc)[-1] != (void*)0xbadfad ) + pName = __Cimpl::ex_name(); + else + pName = *(const char**)((void**)pExc)[-18]; // get exception - cc50_solaris_sparc_fillUnoException( __Crun::ex_get(), - __Cimpl::ex_name(), + cc50_solaris_sparc_fillUnoException( pExc, + pName, *ppUnoExc, &pThis->pBridge->aCpp2Uno); // temporary params |