summaryrefslogtreecommitdiff
path: root/misc/libreoffice4/patches/patch-bridges_source_cpp__uno_gcc3__linux__intel_except.cxx
blob: c571c24fac51654562eeaeabcf82c9ae48d05939 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
$NetBSD: patch-bridges_source_cpp__uno_gcc3__linux__intel_except.cxx,v 1.1 2014/06/01 14:31:08 ryoon Exp $

--- bridges/source/cpp_uno/gcc3_linux_intel/except.cxx.orig	2014-04-30 19:49:45.000000000 +0000
+++ bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
@@ -22,11 +22,6 @@
 #include <dlfcn.h>
 #include <boost/unordered_map.hpp>
 
-#include <cxxabi.h>
-#ifndef _GLIBCXX_CDTOR_CALLABI // new in GCC 4.7 cxxabi.h
-#define _GLIBCXX_CDTOR_CALLABI
-#endif
-
 #include <rtl/strbuf.hxx>
 #include <rtl/ustrbuf.hxx>
 #include <osl/diagnose.h>
@@ -248,7 +243,11 @@ void raiseException( uno_Any * pUnoExc, 
             Reference< XInterface >() );
     }
 
+#ifdef _LIBCPP_VERSION
+    pCppExc = __cxxabiv1::__cxa_allocate_exception( pTypeDescr->nSize );
+#else
     pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
+#endif
     ::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
 
     // destruct uno exception
@@ -280,7 +279,11 @@ void raiseException( uno_Any * pUnoExc, 
     }
     }
 
+#ifdef _LIBCPP_VERSION
+    __cxxabiv1::__cxa_throw( pCppExc, rtti, deleteException );
+#else
     __cxa_throw( pCppExc, rtti, deleteException );
+#endif
 }
 
 //==================================================================================================