[PATCH libreoffice-4-0] rhbz#867808 Do not throw RuntimeException by pointer

Stephan Bergmann (via Code Review) gerrit at gerrit.libreoffice.org
Tue Apr 16 07:23:05 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/3418

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/18/3418/1

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
---
M bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx
M bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx
M i18npool/source/transliteration/transliteration_Numeric.cxx
M sdext/source/presenter/PresenterController.cxx
M stoc/source/registry_tdprovider/functiondescription.cxx
M stoc/source/registry_tdprovider/methoddescription.cxx
M testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx
M toolkit/source/awt/stylesettings.cxx
M toolkit/source/awt/vclxwindow1.cxx
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 @@
     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 @@
     }
     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 @@
     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 @@
 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 @@
     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 @@
         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 @@
         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 @@
             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 @@
        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 @@
         {
             if (args->Length < 1)
             {
-                throw new RuntimeException(
+                throw RuntimeException(
                     "missing argument for bridgetest!", this );
             }
             Object* test_obj =
@@ -846,7 +846,7 @@
             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 @@
     {
         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 @@
     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 @@
     }
     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;

-- 
To view, visit https://gerrit.libreoffice.org/3418
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I22b7d3d642e7ee0488d6b726a331d328065bbee7
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Stephan Bergmann <sbergman at redhat.com>



More information about the LibreOffice mailing list