summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_intel/except.cxx5
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx15
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx5
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx14
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