summaryrefslogtreecommitdiff
path: root/app-office/libreoffice/files/stop-messing-with-stdlib-internals.patch
diff options
context:
space:
mode:
Diffstat (limited to 'app-office/libreoffice/files/stop-messing-with-stdlib-internals.patch')
-rw-r--r--app-office/libreoffice/files/stop-messing-with-stdlib-internals.patch61
1 files changed, 0 insertions, 61 deletions
diff --git a/app-office/libreoffice/files/stop-messing-with-stdlib-internals.patch b/app-office/libreoffice/files/stop-messing-with-stdlib-internals.patch
deleted file mode 100644
index b9f8d315..00000000
--- a/app-office/libreoffice/files/stop-messing-with-stdlib-internals.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-much from <http://cgit.freedesktop.org/libreoffice/core/tree/bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx>
-diff -ur a-libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx
---- a-libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2013-06-20 09:13:52.000000000 +0200
-+++ libreoffice-4.1.0.1/bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2013-07-11 14:16:40.998562174 +0200
-@@ -53,6 +53,38 @@
-
- namespace CPPU_CURRENT_NAMESPACE
- {
-+struct FAKE_type_info: public std::type_info {
-+ FAKE_type_info(char const * name): type_info(name) {}
-+};
-+struct FAKE_si_class_type_info: public FAKE_type_info {
-+ FAKE_si_class_type_info(char const * name, std::type_info const * theBase):
-+ FAKE_type_info(name), base(theBase) {}
-+
-+ std::type_info const * base;
-+ // actually a __cxxabiv1::__class_type_info pointer
-+};
-+struct Base {};
-+struct Derived: Base {};
-+
-+std::type_info * create_FAKE_class_type_info(char const * name) {
-+ std::type_info * p = new FAKE_type_info(name);
-+ // cxxabiv1::__class_type_info has no data members in addition to
-+ // std::type_info
-+ *reinterpret_cast< void ** >(p) = *reinterpret_cast< void * const * >(
-+ &typeid(Base));
-+ // copy correct __cxxabiv1::__class_type_info vtable into place
-+ return p;
-+}
-+
-+std::type_info * create_FAKE_si_class_type_info(
-+ char const * name, std::type_info const * base)
-+{
-+ std::type_info * p = new FAKE_si_class_type_info(name, base);
-+ *reinterpret_cast< void ** >(p) = *reinterpret_cast< void * const * >(
-+ &typeid(Derived));
-+ // copy correct __cxxabiv1::__si_class_type_info vtable into place
-+ return p;
-+}
-
- //==================================================================================================
- static OUString toUNOname( char const * p ) SAL_THROW(())
-@@ -180,13 +212,13 @@
- // ensure availability of base
- type_info * base_rtti = getRTTI(
- (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription );
-- rtti = new __si_class_type_info(
-- strdup( rttiName ), (__class_type_info *)base_rtti );
-+ rtti = create_FAKE_si_class_type_info(
-+ strdup( rttiName ), base_rtti );
- }
- else
- {
- // this class has no base class
-- rtti = new __class_type_info( strdup( rttiName ) );
-+ rtti = create_FAKE_class_type_info( strdup( rttiName ) );
- }
-
- pair< t_rtti_map::iterator, bool > insertion (
-