[libreoffice] Resolves: rhbz#867808 do not throw UNO exceptions by pointer in C++
sbergmann
sbergmann at fedoraproject.org
Tue Apr 16 15:04:45 UTC 2013
commit 7fb0685eadf491173ccc637cf419253008a9415a
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Tue Apr 16 17:04:39 2013 +0200
Resolves: rhbz#867808 do not throw UNO exceptions by pointer in C++
...-Do-not-throw-RuntimeException-by-pointer.patch | 221 ++++++++++++++++++++
libreoffice.spec | 7 +-
2 files changed, 227 insertions(+), 1 deletions(-)
---
diff --git a/0001-rhbz-867808-Do-not-throw-RuntimeException-by-pointer.patch b/0001-rhbz-867808-Do-not-throw-RuntimeException-by-pointer.patch
new file mode 100644
index 0000000..134c46f
--- /dev/null
+++ b/0001-rhbz-867808-Do-not-throw-RuntimeException-by-pointer.patch
@@ -0,0 +1,221 @@
+From f2d801284657b496d0a9498a4db825dbceaafa8c Mon Sep 17 00:00:00 2001
+From: Stephan Bergmann <sbergman at redhat.com>
+Date: Tue, 16 Apr 2013 13:52:02 +0200
+Subject: [PATCH] rhbz#867808 Do not throw RuntimeException by pointer
+
+(cherry picked from commit e46564a0a6a74da90785a1b910d33e2b5bfdcfd9, plus
+63b4633cf7b0da9eba63e752cec72cb10ed9d93e "Related: rhbz#867808 if one person
+threw by pointer..." and 336353a87e6003e685aab87ea74a158546e1f297 "Related
+rhbz#867808: More apparently bogus 'throw new ...' in C++ code")
+Conflicts:
+ bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx
+ bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx
+ sdext/source/presenter/PresenterController.cxx
+ stoc/source/registry_tdprovider/functiondescription.cxx
+ stoc/source/registry_tdprovider/methoddescription.cxx
+ toolkit/source/awt/vclxwindow1.cxx
+
+Change-Id: I22b7d3d642e7ee0488d6b726a331d328065bbee7
+---
+ .../nativethreadpool/testnativethreadpoolclient.cxx | 4 ++--
+ .../nativethreadpool/testnativethreadpoolserver.cxx | 2 +-
+ .../source/transliteration/transliteration_Numeric.cxx | 6 +++---
+ sdext/source/presenter/PresenterController.cxx | 2 +-
+ stoc/source/registry_tdprovider/functiondescription.cxx | 4 ++--
+ stoc/source/registry_tdprovider/methoddescription.cxx | 2 +-
+ testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx | 6 +++---
+ toolkit/source/awt/stylesettings.cxx | 2 +-
+ toolkit/source/awt/vclxwindow1.cxx | 14 ++++++--------
+ 9 files changed, 20 insertions(+), 22 deletions(-)
+
+diff --git a/bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx b/bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx
+index df0991c..b7a5ff3 100644
+--- a/bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx
++++ b/bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx
+@@ -74,7 +74,7 @@ sal_Int32 Client::run(css::uno::Sequence< rtl::OUString > const &)
+ css::uno::Reference< css::lang::XMultiComponentFactory > factory(
+ context->getServiceManager());
+ if (!factory.is()) {
+- throw new css::uno::RuntimeException(
++ throw css::uno::RuntimeException(
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "no component context service manager" )),
+ static_cast< cppu::OWeakObject * >(this));
+ }
+@@ -94,7 +94,7 @@ sal_Int32 Client::run(css::uno::Sequence< rtl::OUString > const &)
+ }
+ relay->start(this);
+ if (!data.setData(reinterpret_cast< void * >(12345))) {
+- throw new css::uno::RuntimeException(
++ throw css::uno::RuntimeException(
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "osl::ThreadData::setData failed" )),
+ static_cast< cppu::OWeakObject * >(this));
+ }
+diff --git a/bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx b/bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx
+index 607a054..3952ce9 100644
+--- a/bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx
++++ b/bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx
+@@ -63,7 +63,7 @@ sal_Int32 Server::get() throw (css::uno::RuntimeException) {
+ css::uno::Reference< css::lang::XMultiComponentFactory > factory(
+ context->getServiceManager());
+ if (!factory.is()) {
+- throw new css::uno::RuntimeException(
++ throw css::uno::RuntimeException(
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "no component context service manager" )),
+ static_cast< cppu::OWeakObject * >(this));
+ }
+diff --git a/i18npool/source/transliteration/transliteration_Numeric.cxx b/i18npool/source/transliteration/transliteration_Numeric.cxx
+index eec4236..de24368 100644
+--- a/i18npool/source/transliteration/transliteration_Numeric.cxx
++++ b/i18npool/source/transliteration/transliteration_Numeric.cxx
+@@ -38,21 +38,21 @@ OUString SAL_CALL
+ transliteration_Numeric::folding( const OUString& /*inStr*/, sal_Int32 /*startPos*/, sal_Int32 /*nCount*/, Sequence< sal_Int32 >& /*offset*/ )
+ throw(RuntimeException)
+ {
+- throw (new RuntimeException());
++ throw RuntimeException();
+ }
+
+ sal_Bool SAL_CALL
+ transliteration_Numeric::equals( const OUString& /*str1*/, sal_Int32 /*pos1*/, sal_Int32 /*nCount1*/, sal_Int32& /*nMatch1*/, const OUString& /*str2*/, sal_Int32 /*pos2*/, sal_Int32 /*nCount2*/, sal_Int32& /*nMatch2*/ )
+ throw(RuntimeException)
+ {
+- throw (new RuntimeException());
++ throw RuntimeException();
+ }
+
+ Sequence< OUString > SAL_CALL
+ transliteration_Numeric::transliterateRange( const OUString& /*str1*/, const OUString& /*str2*/ )
+ throw(RuntimeException)
+ {
+- throw (new RuntimeException());
++ throw RuntimeException();
+ }
+
+
+diff --git a/sdext/source/presenter/PresenterController.cxx b/sdext/source/presenter/PresenterController.cxx
+index 14820da..44b5bea 100644
+--- a/sdext/source/presenter/PresenterController.cxx
++++ b/sdext/source/presenter/PresenterController.cxx
+@@ -119,7 +119,7 @@ PresenterController::PresenterController (
+ OSL_ASSERT(mxController.is());
+
+ if ( ! mxSlideShowController.is())
+- throw new lang::IllegalArgumentException(
++ throw lang::IllegalArgumentException(
+ A2S("missing slide show controller"),
+ static_cast<XWeak*>(this),
+ 2);
+diff --git a/stoc/source/registry_tdprovider/functiondescription.cxx b/stoc/source/registry_tdprovider/functiondescription.cxx
+index 8840451..3cb9635 100644
+--- a/stoc/source/registry_tdprovider/functiondescription.cxx
++++ b/stoc/source/registry_tdprovider/functiondescription.cxx
+@@ -71,7 +71,7 @@ FunctionDescription::getExceptions() const {
+ try {
+ any = m_manager->getByHierarchicalName(name);
+ } catch (const css::container::NoSuchElementException & e) {
+- throw new css::uno::RuntimeException(
++ throw css::uno::RuntimeException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.container.NoSuchElementException: "))
+@@ -81,7 +81,7 @@ FunctionDescription::getExceptions() const {
+ if (!(any >>= exceptions[i])
+ || exceptions[i]->getTypeClass() != css::uno::TypeClass_EXCEPTION)
+ {
+- throw new css::uno::RuntimeException(
++ throw css::uno::RuntimeException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("not an exception type: "))
+ + name),
+diff --git a/stoc/source/registry_tdprovider/methoddescription.cxx b/stoc/source/registry_tdprovider/methoddescription.cxx
+index fd2d6c3..f018d1f 100644
+--- a/stoc/source/registry_tdprovider/methoddescription.cxx
++++ b/stoc/source/registry_tdprovider/methoddescription.cxx
+@@ -90,7 +90,7 @@ css::uno::Reference< css::reflection::XTypeDescription > Parameter::getType()
+ m_manager->getByHierarchicalName(m_typeName),
+ css::uno::UNO_QUERY_THROW);
+ } catch (const css::container::NoSuchElementException & e) {
+- throw new css::uno::RuntimeException(
++ throw css::uno::RuntimeException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.container.NoSuchElementException: "))
+diff --git a/testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx b/testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx
+index c2e7bda..7d08eab 100644
+--- a/testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx
++++ b/testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx
+@@ -799,7 +799,7 @@ static bool raiseException(XBridgeTest* xLBT )
+ bRet = performQueryForUnknownType( xLBT ) && bRet;
+ if (! bRet)
+ {
+- throw new unoidl::com::sun::star::uno::RuntimeException(
++ throw unoidl::com::sun::star::uno::RuntimeException(
+ new String("error: test failed!"), 0);
+ }
+ }
+@@ -819,7 +819,7 @@ static bool raiseException(XBridgeTest* xLBT )
+ {
+ if (args->Length < 1)
+ {
+- throw new RuntimeException(
++ throw RuntimeException(
+ "missing argument for bridgetest!", this );
+ }
+ Object* test_obj =
+@@ -846,7 +846,7 @@ static bool raiseException(XBridgeTest* xLBT )
+ s->Append(exc->GetType()->Name);
+ s->Append(S"\n Message: ");
+ s->Append(exc->Message);
+- throw new unoidl::com::sun::star::uno::RuntimeException(
++ throw unoidl::com::sun::star::uno::RuntimeException(
+ s->ToString(), 0);
+ }
+ }
+diff --git a/toolkit/source/awt/stylesettings.cxx b/toolkit/source/awt/stylesettings.cxx
+index 97d5e29..fc0fbaa 100644
+--- a/toolkit/source/awt/stylesettings.cxx
++++ b/toolkit/source/awt/stylesettings.cxx
+@@ -116,7 +116,7 @@ namespace toolkit
+ {
+ Window* pWindow = i_rOwningWindow.GetWindow();
+ if ( !pWindow )
+- throw new RuntimeException();
++ throw RuntimeException();
+ pWindow->AddEventListener( LINK( m_pData.get(), WindowStyleSettings_Data, OnWindowEvent ) );
+ }
+
+diff --git a/toolkit/source/awt/vclxwindow1.cxx b/toolkit/source/awt/vclxwindow1.cxx
+index f38a95c..77af1b2 100644
+--- a/toolkit/source/awt/vclxwindow1.cxx
++++ b/toolkit/source/awt/vclxwindow1.cxx
+@@ -46,10 +46,9 @@ void VCLXWindow::SetSystemParent_Impl( const com::sun::star::uno::Any& rHandle )
+ Window *pWindow = GetWindow();
+ if ( pWindow->GetType() != WINDOW_WORKWINDOW )
+ {
+- ::com::sun::star::uno::Exception *pException =
+- new ::com::sun::star::uno::RuntimeException;
+- pException->Message = ::rtl::OUString("not a work window");
+- throw pException;
++ com::sun::star::uno::Exception aException;
++ aException.Message = ::rtl::OUString("not a work window");
++ throw aException;
+ }
+
+ // use sal_Int64 here to accomodate all int types
+@@ -77,10 +76,9 @@ void VCLXWindow::SetSystemParent_Impl( const com::sun::star::uno::Any& rHandle )
+ }
+ if( bThrow )
+ {
+- ::com::sun::star::uno::Exception *pException =
+- new ::com::sun::star::uno::RuntimeException;
+- pException->Message = ::rtl::OUString("incorrect window handle type");
+- throw pException;
++ com::sun::star::uno::Exception aException;
++ aException.Message = ::rtl::OUString("incorrect window handle type");
++ throw aException;
+ }
+ // create system parent data
+ SystemParentData aSysParentData;
+--
+1.8.1.4
+
diff --git a/libreoffice.spec b/libreoffice.spec
index 8c87656..f616a0c 100644
--- a/libreoffice.spec
+++ b/libreoffice.spec
@@ -43,7 +43,7 @@ Summary: Free Software Productivity Suite
Name: libreoffice
Epoch: 1
Version: %{libo_version}.2
-Release: 4%{?libo_prerelease}%{?dist}
+Release: 5%{?libo_prerelease}%{?dist}
License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0
Group: Applications/Productivity
URL: http://www.documentfoundation.org/develop
@@ -252,6 +252,7 @@ Patch22: 0001-Resolves-rhbz-920697-i110881-rhbz-623191-presentatio.patch
Patch23: 0001-rhbz-876742-speed-up-table-manipulation-in-Impress.patch
Patch24: 0001-Resolves-rhbz-949238-div-by-zero-on-pagedown-in-0-wi.patch
Patch25: 0001-Resolves-fdo-47209-and-rhbz-927223-syntax-highlighte.patch
+Patch26: 0001-rhbz-867808-Do-not-throw-RuntimeException-by-pointer.patch
%define instdir %{_libdir}
%define baseinstdir %{instdir}/libreoffice
@@ -1009,6 +1010,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc
%patch23 -p1 -b .rhbz-876742-speed-up-table-manipulation-in-Impress.patch
%patch24 -p1 -b .rhbz-949238-div-by-zero-on-pagedown-in-0-wi.patch
%patch25 -p1 -b .fdo-47209-and-rhbz-927223-syntax-highlighte.patch
+%patch26 -p1 -b .rhbz-867808-Do-not-throw-RuntimeException-by-pointer.patch
# TODO: check this
# these are horribly incomplete--empty translations and copied english
@@ -2082,6 +2084,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
%endif
%changelog
+* Tue Apr 16 2013 Stephan Bergmann <sbergman at redhat.com> - 1:4.0.2.2-5-UNBUILT
+- Resolves: rhbz#867808 do not throw UNO exceptions by pointer in C++
+
* Tue Apr 16 2013 Caolán McNamara <caolanm at redhat.com> - 1:4.0.2.2-4
- Resolves: rhbz#927223 syntax highlighting crash
More information about the scm-commits
mailing list