[Libreoffice-commits] core.git: Branch 'feature/gsoc-tiled-rendering' - 32 commits - chart2/source comphelper/source connectivity/source cppuhelper/qa cppuhelper/source dbaccess/source desktop/source editeng/source embedserv/source forms/source framework/inc framework/source include/cppuhelper include/editeng include/LibreOfficeKit include/sfx2 include/sot include/svtools include/svx include/tools include/vcl libreofficekit/qa libreofficekit/source scaddins/source scripting/source sc/source sd/source sfx2/source sot/source svtools/source svx/source sw/inc sw/source toolkit/source tools/source ucb/source vcl/source vcl/workben

Pranav Kant pranavk at gnome.org
Mon Jun 29 03:19:39 PDT 2015


Rebased ref, commits from common ancestor:
commit dbfde294265f184736306ac66d6de829b337277b
Author: Pranav Kant <pranavk at gnome.org>
Date:   Mon Jun 29 13:34:24 2015 +0530

    gtktiledviewer: Don't continue on widget init failure
    
    Change-Id: I5916357903fad5878d29bc31f21af45816a45ec5

diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index db465cb..f7b065c 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -520,8 +520,8 @@ int main( int argc, char* argv[] )
 
     // Docview
     pDocView = lok_doc_view_new (argv[1], NULL, NULL);
-    if (pDocView == NULL)
-        g_error ("Error while creating LOKDocView widget");
+    g_assert_nonnull(pDocView);
+
     g_signal_connect(pDocView, "edit-changed", G_CALLBACK(signalEdit), NULL);
     g_signal_connect(pDocView, "command-changed", G_CALLBACK(signalCommand), NULL);
     g_signal_connect(pDocView, "search-not-found", G_CALLBACK(signalSearch), NULL);
commit 6ae09501447c68c7374f3fb39f8b365c56c59b91
Author: Pranav Kant <pranavk at gnome.org>
Date:   Wed Jun 24 02:02:39 2015 +0530

    lokdocview: Handle DELETE key
    
    Change-Id: I58d0c36decf81c812c108458b449402416ebcc2d

diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index ca7167b..62f1e61 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -245,6 +245,9 @@ signalKey (GtkWidget* pWidget, GdkEventKey* pEvent)
     case GDK_KEY_BackSpace:
         nKeyCode = com::sun::star::awt::Key::BACKSPACE;
         break;
+    case GDK_KEY_Delete:
+        nKeyCode = com::sun::star::awt::Key::DELETE;
+        break;
     case GDK_KEY_Return:
         nKeyCode = com::sun::star::awt::Key::RETURN;
         break;
commit 734fd92db1bca28c26622cde1beca8bea25e0d22
Author: Pranav Kant <pranavk at gnome.org>
Date:   Tue Jun 23 14:37:09 2015 +0530

    tilebuffer: Add timer to measure paintTile() call
    
    Change-Id: I2645863c7445e17d77e2c4e2dc24e22f8685034e

diff --git a/libreofficekit/source/gtk/tilebuffer.cxx b/libreofficekit/source/gtk/tilebuffer.cxx
index 3f22f98..60aa16f 100644
--- a/libreofficekit/source/gtk/tilebuffer.cxx
+++ b/libreofficekit/source/gtk/tilebuffer.cxx
@@ -91,7 +91,7 @@ Tile& TileBuffer::getTile(int x, int y, float aZoom)
         aTileRectangle.x = pixelToTwip(nTileSizePixels, aZoom) * y;
         aTileRectangle.y = pixelToTwip(nTileSizePixels, aZoom) * x;
 
-        g_info ("Rendering (%d, %d)", x, y);
+        g_test_timer_start();
         m_pLOKDocument->pClass->paintTile(m_pLOKDocument,
                                           pBuffer,
                                           nTileSizePixels, nTileSizePixels,
@@ -99,6 +99,9 @@ Tile& TileBuffer::getTile(int x, int y, float aZoom)
                                           pixelToTwip(nTileSizePixels, aZoom),
                                           pixelToTwip(nTileSizePixels, aZoom));
 
+        double elapsedTime = g_test_timer_elapsed();
+        g_info ("Rendered (%d, %d) in %f seconds", x, y, elapsedTime);
+
         //create a mapping for it
         m_mTiles[index].setPixbuf(pPixBuf);
         m_mTiles[index].valid = true;
commit 0835695e94caa9e58f70fe6ec31bf1e9693a6619
Author: Pranav Kant <pranavk at gnome.org>
Date:   Tue Jun 23 02:58:38 2015 +0530

    lokdocview: Remove superfluous *_post_key()
    
    Instead directly let LOKDocView handle the input.
    
    Change-Id: I260a460df23c3e2e5c78d8b363bb864ae5c63dab

diff --git a/include/LibreOfficeKit/LibreOfficeKitGtk.h b/include/LibreOfficeKit/LibreOfficeKitGtk.h
index 3a1628b..962f9d9 100644
--- a/include/LibreOfficeKit/LibreOfficeKitGtk.h
+++ b/include/LibreOfficeKit/LibreOfficeKitGtk.h
@@ -74,10 +74,6 @@ void                           lok_doc_view_post_command           (LOKDocView*
                                                                     const char* pCommand,
                                                                     const char* pArguments);
 
-/// Posts a keyboard event to LibreOfficeKit.
-void                           lok_doc_view_post_key               (LOKDocView* pDocView,
-                                                                    GdkEvent* pEvent);
-
 float                          lok_doc_view_pixel_to_twip          (LOKDocView* pDocView,
                                                                     float fInput);
 
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 1ca9454..db465cb 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -191,19 +191,6 @@ static void getVisibleAreaTwips(GdkRectangle* pArea)
 #endif
 }
 
-
-/// Handles the key-press-event of the window.
-static gboolean signalKey(GtkWidget* /*pWidget*/, GdkEvent* pEvent, gpointer/* pData*/)
-{
-    LOKDocView* pLOKDocView = LOK_DOC_VIEW(pDocView);
-    if (!gtk_widget_get_visible(pFindbar) && bool(lok_doc_view_get_edit(pLOKDocView)))
-        {
-            lok_doc_view_post_key(pLOKDocView, pEvent);
-            return TRUE;
-        }
-    return FALSE;
-}
-
 /// Searches for the next or previous text of pFindbarEntry.
 static void doSearch(bool bBackwards)
 {
@@ -541,10 +528,6 @@ int main( int argc, char* argv[] )
     g_signal_connect(pDocView, "part-changed", G_CALLBACK(signalPart), NULL);
     g_signal_connect(pDocView, "hyperlink-clicked", G_CALLBACK(signalHyperlink), NULL);
 
-    // Input handling.
-    g_signal_connect(pWindow, "key-press-event", G_CALLBACK(signalKey), pDocView);
-    g_signal_connect(pWindow, "key-release-event", G_CALLBACK(signalKey), pDocView);
-
     // Scrolled window for DocView
     pScrolledWindow = gtk_scrolled_window_new(0, 0);
     gtk_widget_set_hexpand (pScrolledWindow, TRUE);
@@ -568,6 +551,11 @@ int main( int argc, char* argv[] )
     g_signal_connect(G_OBJECT(pPartModeComboBox), "changed", G_CALLBACK(changePartMode), 0);
     g_signal_connect(G_OBJECT(pPartSelector), "changed", G_CALLBACK(changePart), 0);
 
+    // Make only LOKDocView widget as focussable
+    GList *focusChain = NULL;
+    focusChain = g_list_append( focusChain, pDocView );
+    gtk_container_set_focus_chain ( GTK_CONTAINER (pVBox), focusChain );
+
     gtk_main();
 
     return 0;
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index 988397a..ca7167b 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -226,24 +226,21 @@ isEmptyRectangle(const GdkRectangle& rRectangle)
     return rRectangle.x == 0 && rRectangle.y == 0 && rRectangle.width == 0 && rRectangle.height == 0;
 }
 
-static void
-signalKey (LOKDocView* pDocView, const GdkEvent* pEvent)
+static gboolean
+signalKey (GtkWidget* pWidget, GdkEventKey* pEvent)
 {
+    LOKDocView* pDocView = LOK_DOC_VIEW(pWidget);
     LOKDocViewPrivate* priv = static_cast<LOKDocViewPrivate*>(lok_doc_view_get_instance_private (pDocView));
     int nCharCode = 0;
     int nKeyCode = 0;
-    guint keyval;
-    GdkModifierType state;
-    gdk_event_get_keyval (pEvent, &keyval);
-    gdk_event_get_state (pEvent, &state);
 
     if (!priv->m_bEdit)
     {
         g_info("signalKey: not in edit mode, ignore");
-        return;
+        return FALSE;
     }
 
-    switch (keyval)
+    switch (pEvent->keyval)
     {
     case GDK_KEY_BackSpace:
         nKeyCode = com::sun::star::awt::Key::BACKSPACE;
@@ -270,22 +267,24 @@ signalKey (LOKDocView* pDocView, const GdkEvent* pEvent)
         nKeyCode = com::sun::star::awt::Key::RIGHT;
         break;
     default:
-        if (keyval >= GDK_KEY_F1 && keyval <= GDK_KEY_F26)
-            nKeyCode = com::sun::star::awt::Key::F1 + (keyval - GDK_KEY_F1);
+        if (pEvent->keyval >= GDK_KEY_F1 && pEvent->keyval <= GDK_KEY_F26)
+            nKeyCode = com::sun::star::awt::Key::F1 + (pEvent->keyval - GDK_KEY_F1);
         else
-            nCharCode = gdk_keyval_to_unicode(keyval);
+            nCharCode = gdk_keyval_to_unicode(pEvent->keyval);
     }
 
     // rsc is not public API, but should be good enough for debugging purposes.
     // If this is needed for real, then probably a new param of type
     // css::awt::KeyModifier is needed in postKeyEvent().
-    if (state & GDK_SHIFT_MASK)
+    if (pEvent->state & GDK_SHIFT_MASK)
         nKeyCode |= KEY_SHIFT;
 
     if (pEvent->type == GDK_KEY_RELEASE)
         priv->m_pDocument->pClass->postKeyEvent(priv->m_pDocument, LOK_KEYEVENT_KEYUP, nCharCode, nKeyCode);
     else
         priv->m_pDocument->pClass->postKeyEvent(priv->m_pDocument, LOK_KEYEVENT_KEYINPUT, nCharCode, nKeyCode);
+
+    return FALSE;
 }
 
 static gboolean
@@ -1151,6 +1150,8 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
     pWidgetClass->draw = lok_doc_view_draw;
     pWidgetClass->button_press_event = lok_doc_view_signal_button;
     pWidgetClass->button_release_event = lok_doc_view_signal_button;
+    pWidgetClass->key_press_event = signalKey;
+    pWidgetClass->key_release_event = signalKey;
     pWidgetClass->motion_notify_event = lok_doc_view_signal_motion;
 
     /**
@@ -1431,6 +1432,8 @@ lok_doc_view_open_document (LOKDocView* pDocView, const gchar* pPath)
         gtk_widget_set_size_request(GTK_WIDGET(pDocView),
                                     nDocumentWidthPixels,
                                     nDocumentHeightPixels);
+        gtk_widget_set_can_focus(GTK_WIDGET(pDocView), TRUE);
+        gtk_widget_grab_focus(GTK_WIDGET(pDocView));
     }
     return TRUE;
 }
@@ -1579,19 +1582,6 @@ lok_doc_view_post_command (LOKDocView* pDocView,
 }
 
 /**
- * lok_doc_view_post_key:
- * @pDocView: the #LOKDocView instance
- * @pEvent: the #GdkEventKey containing information about the event
- *
- * This methods forwards your key events to the LO core.
-*/
-SAL_DLLPUBLIC_EXPORT void
-lok_doc_view_post_key (LOKDocView* pDocView, GdkEvent* pEvent)
-{
-    signalKey(pDocView, pEvent);
-}
-
-/**
  * lok_doc_view_pixel_to_twip:
  * @pDocView: The #LOKDocView instance
  * @fInput: The value in pixels to convert to twips
commit 69a54c18ea7ed6e2b93a27338ad72cc69fb7797d
Author: Pranav Kant <pranavk at gnome.org>
Date:   Tue Jun 23 01:52:44 2015 +0530

    lokdocview: Don't handle hyperlink clicks
    
    Instead emit the signal 'hyperlink-clicked', and let the
    application decide how it wants to handle the hyperlink clicks.
    
    Change-Id: Ief72bbd16727e140cacf28b852ad43952c02f7ae

diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 917b294..1ca9454 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -312,6 +312,17 @@ static void signalPart(LOKDocView* /*pLOKDocView*/, int nPart, gpointer /*pData*
 }
 
 /// User clicked on a command button -> inform LOKDocView.
+static void signalHyperlink(LOKDocView* /*pLOKDocView*/, char* pPayload, gpointer /*pData*/)
+{
+    GError* pError = NULL;
+    gtk_show_uri(NULL, pPayload, GDK_CURRENT_TIME, &pError);
+    if (pError != NULL)
+    {
+        g_warning("Unable to show URI %s : %s", pPayload, pError->message);
+        g_error_free(pError);
+    }
+}
+
 static void toggleToolItem(GtkWidget* pWidget, gpointer /*pData*/)
 {
     if (g_bToolItemBroadcast)
@@ -528,6 +539,7 @@ int main( int argc, char* argv[] )
     g_signal_connect(pDocView, "command-changed", G_CALLBACK(signalCommand), NULL);
     g_signal_connect(pDocView, "search-not-found", G_CALLBACK(signalSearch), NULL);
     g_signal_connect(pDocView, "part-changed", G_CALLBACK(signalPart), NULL);
+    g_signal_connect(pDocView, "hyperlink-clicked", G_CALLBACK(signalHyperlink), NULL);
 
     // Input handling.
     g_signal_connect(pWindow, "key-press-event", G_CALLBACK(signalKey), pDocView);
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index cff02ea..988397a 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -324,6 +324,12 @@ setPart(LOKDocView* pDocView, const std::string& rString)
     g_signal_emit(pDocView, doc_view_signals[PART_CHANGED], 0, std::stoi(rString));
 }
 
+static void
+hyperlinkClicked(LOKDocView* pDocView, const std::string& rString)
+{
+    g_signal_emit(pDocView, doc_view_signals[HYPERLINK_CLICKED], 0, rString.c_str());
+}
+
 /// Implementation of the global callback handler, invoked by globalCallback();
 static gboolean
 globalCallback (gpointer pData)
@@ -507,8 +513,7 @@ callback (gpointer pData)
     break;
     case LOK_CALLBACK_HYPERLINK_CLICKED:
     {
-        GError* pError = NULL;
-        gtk_show_uri(NULL, pCallback->m_aPayload.c_str(), GDK_CURRENT_TIME, &pError);
+        hyperlinkClicked(pDocView, pCallback->m_aPayload);
     }
     break;
     case LOK_CALLBACK_STATE_CHANGED:
@@ -1353,7 +1358,7 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
      * @aHyperlink: the URI which the application should handle
      */
     doc_view_signals[HYPERLINK_CLICKED] =
-        g_signal_new("hyperlinked-clicked",
+        g_signal_new("hyperlink-clicked",
                      G_TYPE_FROM_CLASS(pGObjectClass),
                      G_SIGNAL_RUN_FIRST,
                      0,
commit fe2ba8574f349b6fcc956136992310ef8a3aa332
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Mon Jun 29 10:46:18 2015 +0200

    rendercontext: Simplify.
    
    Change-Id: I1dced1263a114d8d30b66da8974d075c83a8414f

diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index 1a2dc49..9510ed3 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -122,21 +122,14 @@ void StyleLBoxString::Paint(
     const Point& aPos, SvTreeListBox& rDevice, vcl::RenderContext& rRenderContext,
     const SvViewDataEntry* pView, const SvTreeListEntry& rEntry)
 {
-    std::unique_ptr<sfx2::StylePreviewRenderer> pStylePreviewRenderer;
-
-    bool bResult = false;
+    bool bPainted = false;
 
     SfxObjectShell* pShell = SfxObjectShell::Current();
-    if (!pShell)
-        return;
-
-    sfx2::StyleManager* pStyleManager = pShell->GetStyleManager();
+    sfx2::StyleManager* pStyleManager = pShell? pShell->GetStyleManager(): nullptr;
 
     if (pStyleManager)
     {
-        bool bInit = (!pStylePreviewRenderer);
-
-        pStylePreviewRenderer.reset(pStyleManager->CreateStylePreviewRenderer(rRenderContext, GetText(), meStyleFamily, 32 * rRenderContext.GetDPIScaleFactor()));
+        std::unique_ptr<sfx2::StylePreviewRenderer> pStylePreviewRenderer(pStyleManager->CreateStylePreviewRenderer(rRenderContext, GetText(), meStyleFamily, 32 * rRenderContext.GetDPIScaleFactor()));
 
         if (pStylePreviewRenderer)
         {
@@ -144,20 +137,17 @@ void StyleLBoxString::Paint(
             {
                 mpViewData->maSize = pStylePreviewRenderer->getRenderSize();
             }
-            else if (bInit)
+            else
             {
                 SvLBoxString::InitViewData( &rDevice, const_cast<SvTreeListEntry*>(&rEntry), mpViewData);
             }
-        }
-    }
 
-    if (pStylePreviewRenderer)
-    {
-        Rectangle aPaintRectangle = pView->GetPaintRectangle();
-        bResult = pStylePreviewRenderer->render(aPaintRectangle);
+            Rectangle aPaintRectangle = pView->GetPaintRectangle();
+            bPainted = pStylePreviewRenderer->render(aPaintRectangle);
+        }
     }
 
-    if (!bResult)
+    if (!bPainted)
     {
         rRenderContext.DrawText(aPos, GetText());
     }
commit 76837070c7c3eae1da50ff0de5e508be285e22c7
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:42:16 2015 +0100

    Resolves: tdf#92047 fix wrong merge conflict resolution
    
    since
    
    commit e8b97a52c96df9c8e8055407b1e40ed7cb9cfc67
    Merge: 2b0be6c 0cde74f
    Date:   Tue Apr 28 11:41:31 2015 +0100
    
    -         bWaterDisabled = !(pTreeBox || aFmtLb.GetSelectionCount() <= 1);
     -        bWaterDisabled = (pTreeBox || aFmtLb->GetSelectionCount() <= 1) ? sal_False : sal_True;
    ++        bWaterDisabled = pTreeBox || aFmtLb->GetSelectionCount() <= 1;
    
    Change-Id: I14d848b4527adf05eb05110b93369791134cbe6c

diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index 47f2e1d..1a2dc49 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -1271,7 +1271,7 @@ void SfxCommonTemplateDialog_Impl::SetWaterCanState(const SfxBoolItem *pItem)
 
     if(!bWaterDisabled)
         //make sure the watercan is only activated when there is (only) one selection
-        bWaterDisabled = pTreeBox || aFmtLb->GetSelectionCount() <= 1;
+        bWaterDisabled = !(pTreeBox || aFmtLb->GetSelectionCount() <= 1);
 
     if(pItem && !bWaterDisabled)
     {
commit 5d39063581fa7a24ee18c870d2f53c2b5d58a0e8
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:29:04 2015 +0100

    coverity#1308583 Uncaught exception
    
    Change-Id: Ibc6a8e437d81769b9a77d0a52e98f71b1c7e7d51

diff --git a/forms/source/component/FormComponent.cxx b/forms/source/component/FormComponent.cxx
index 9b8a398..1b978d1 100644
--- a/forms/source/component/FormComponent.cxx
+++ b/forms/source/component/FormComponent.cxx
@@ -1421,7 +1421,7 @@ void OBoundControlModel::onValuePropertyChange( ControlModelLock& i_rControLock
         recheckValidity( true );
 }
 
-void OBoundControlModel::_propertyChanged( const PropertyChangeEvent& _rEvt ) throw ( RuntimeException )
+void OBoundControlModel::_propertyChanged( const PropertyChangeEvent& _rEvt ) throw ( RuntimeException, std::exception )
 {
     ControlModelLock aLock( *this );
     OSL_ENSURE( _rEvt.PropertyName == m_sValuePropertyName,
diff --git a/forms/source/component/FormattedField.cxx b/forms/source/component/FormattedField.cxx
index bb37b4b..0d385ac 100644
--- a/forms/source/component/FormattedField.cxx
+++ b/forms/source/component/FormattedField.cxx
@@ -438,7 +438,7 @@ Any SAL_CALL OFormattedModel::getPropertyDefault( const OUString& aPropertyName
         return OEditBaseModel::getPropertyDefault(aPropertyName);
 }
 
-void OFormattedModel::_propertyChanged( const com::sun::star::beans::PropertyChangeEvent& evt ) throw(RuntimeException)
+void OFormattedModel::_propertyChanged( const com::sun::star::beans::PropertyChangeEvent& evt ) throw(RuntimeException, std::exception)
 {
     // TODO: check how this works with external bindings
     OSL_ENSURE( evt.Source == m_xAggregateSet, "OFormattedModel::_propertyChanged: where did this come from?" );
diff --git a/forms/source/component/FormattedField.hxx b/forms/source/component/FormattedField.hxx
index 424f0db..3c771d5 100644
--- a/forms/source/component/FormattedField.hxx
+++ b/forms/source/component/FormattedField.hxx
@@ -107,7 +107,7 @@ class OFormattedModel
         ) const SAL_OVERRIDE;
 
         // XPropertyChangeListener
-        virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException) SAL_OVERRIDE;
+        virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
         // prevent method hiding
         using OEditBaseModel::disposing;
diff --git a/forms/source/inc/FormComponent.hxx b/forms/source/inc/FormComponent.hxx
index ecaffb9..745dc88 100644
--- a/forms/source/inc/FormComponent.hxx
+++ b/forms/source/inc/FormComponent.hxx
@@ -1079,7 +1079,7 @@ protected:
 protected:
     // OPropertyChangeListener
     virtual void
-                _propertyChanged( const ::com::sun::star::beans::PropertyChangeEvent& _rEvt ) throw ( ::com::sun::star::uno::RuntimeException ) SAL_OVERRIDE;
+                _propertyChanged( const ::com::sun::star::beans::PropertyChangeEvent& _rEvt ) throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
 
     /// checks whether we currently have an external value binding in place
     inline  bool    hasExternalValueBinding() const { return m_xExternalBinding.is(); }
commit 0a4e65219e785dced414821d0c2fef483b40e0c4
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:28:20 2015 +0100

    coverity#1308582 Uncaught exception
    
    Change-Id: Ibe15ebdbdd5c0eb719821043696ce22f76c5b232

diff --git a/forms/source/component/DatabaseForm.cxx b/forms/source/component/DatabaseForm.cxx
index 265e21f..e5214aa 100644
--- a/forms/source/component/DatabaseForm.cxx
+++ b/forms/source/component/DatabaseForm.cxx
@@ -2829,7 +2829,7 @@ bool ODatabaseForm::implEnsureConnection()
 }
 
 
-void ODatabaseForm::load_impl(bool bCausedByParentForm, bool bMoveToFirst, const Reference< XInteractionHandler >& _rxCompletionHandler ) throw( RuntimeException )
+void ODatabaseForm::load_impl(bool bCausedByParentForm, bool bMoveToFirst, const Reference< XInteractionHandler >& _rxCompletionHandler ) throw( RuntimeException, std::exception )
 {
     ::osl::ResettableMutexGuard aGuard(m_aMutex);
 
diff --git a/forms/source/component/DatabaseForm.hxx b/forms/source/component/DatabaseForm.hxx
index 01e9f41..2bcf96e 100644
--- a/forms/source/component/DatabaseForm.hxx
+++ b/forms/source/component/DatabaseForm.hxx
@@ -461,7 +461,7 @@ private:
     // impl methods
     void    load_impl(bool bCausedByParentForm, bool bMoveToFirst = true,
         const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& _rxCompletionHandler = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >())
-        throw(::com::sun::star::uno::RuntimeException);
+        throw(::com::sun::star::uno::RuntimeException, std::exception);
     void    reload_impl(bool bMoveToFirst,
         const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& _rxCompletionHandler = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >())
         throw(::com::sun::star::uno::RuntimeException, std::exception);
commit 1db55c30784d4b31211bd59c5644f01b5053130d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:20:58 2015 +0100

    coverity#1308580 Uncaught exception
    
    Change-Id: I13722acfcdf3d1706c26796c56158c99d3d844ba

diff --git a/sw/inc/unotbl.hxx b/sw/inc/unotbl.hxx
index 4c94b4d..9a1d41c 100644
--- a/sw/inc/unotbl.hxx
+++ b/sw/inc/unotbl.hxx
@@ -546,7 +546,7 @@ public:
             ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > *pAnySeq,
             ::com::sun::star::uno::Sequence< OUString > *pTextSeq,
             ::com::sun::star::uno::Sequence< double > *pDblSeq,
-            bool bForceNumberResults = false ) throw (::com::sun::star::uno::RuntimeException);
+            bool bForceNumberResults = false ) throw (::com::sun::star::uno::RuntimeException, std::exception);
 
 };
 
diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index 4e936c5..8edd361 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -3465,7 +3465,7 @@ void SwXCellRange::GetDataSequence(
         bool bForceNumberResults )              //-> when 'true' requires to make an
                                                 // extra effort to return a value different
                                                 // from 0 even if the cell is formatted to text
-    throw (uno::RuntimeException)
+    throw (uno::RuntimeException, std::exception)
 {
     SolarMutexGuard aGuard;
 
commit 7462cfde6d3c8ce38455935c83261633c3a1d433
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:19:48 2015 +0100

    coverity#1308579 Uncaught exception
    
    Change-Id: I6bd1f9cdf69865972de9c22106a95e1ebf9a74f7

diff --git a/scripting/source/stringresource/stringresource.cxx b/scripting/source/stringresource/stringresource.cxx
index 53cdcbf..79b018e 100644
--- a/scripting/source/stringresource/stringresource.cxx
+++ b/scripting/source/stringresource/stringresource.cxx
@@ -1127,7 +1127,7 @@ void StringResourcePersistenceImpl::implKillRemovedLocaleFiles
     const OUString& aNameBase,
     const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess3 >& xFileAccess
 )
-    throw (Exception, RuntimeException)
+    throw (Exception, RuntimeException, std::exception)
 {
     // Delete files for deleted locales
     while( m_aDeletedLocaleItemVector.size() > 0 )
diff --git a/scripting/source/stringresource/stringresource.hxx b/scripting/source/stringresource/stringresource.hxx
index 853b214..5992ea8 100644
--- a/scripting/source/stringresource/stringresource.hxx
+++ b/scripting/source/stringresource/stringresource.hxx
@@ -289,7 +289,7 @@ protected:
         const OUString& aNameBase,
         const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess3 >& xFileAccess
     )
-    throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+    throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException, std::exception);
 
     void implKillChangedDefaultFiles
     (
commit 5887200e10398fb5264dfaa853bbc51b1c6e7a4f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:18:45 2015 +0100

    coverity#1308577 Uncaught exception
    
    Change-Id: I6de407255be2bd1cc12edb5bbcaba5dd2501f60d

diff --git a/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx b/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
index fc6a7ed..1f209947 100644
--- a/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
+++ b/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
@@ -607,7 +607,7 @@ OUString AccessibleDrawDocumentView::CreateAccessibleName()
 */
 OUString
     AccessibleDrawDocumentView::CreateAccessibleDescription()
-    throw (::com::sun::star::uno::RuntimeException)
+    throw (::com::sun::star::uno::RuntimeException, std::exception)
 {
     OUString sDescription;
 
diff --git a/sd/source/ui/inc/AccessibleDrawDocumentView.hxx b/sd/source/ui/inc/AccessibleDrawDocumentView.hxx
index 75393d2..73b6e70 100644
--- a/sd/source/ui/inc/AccessibleDrawDocumentView.hxx
+++ b/sd/source/ui/inc/AccessibleDrawDocumentView.hxx
@@ -168,7 +168,7 @@ protected:
     */
     virtual OUString
         CreateAccessibleDescription ()
-        throw (::com::sun::star::uno::RuntimeException) SAL_OVERRIDE;
+        throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     /** Make sure that the currently focused shape sends a FOCUSED state
         change event indicating that it has (regained) the focus.
commit 25283488fd221b1964eacc2c917df98ac3d604ae
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:17:10 2015 +0100

    coverity#1308574 Uncaught exception
    
    Change-Id: I416e3d443a43802bd8e093397945b056abe3bf85

diff --git a/sd/source/ui/accessibility/AccessibleOutlineView.cxx b/sd/source/ui/accessibility/AccessibleOutlineView.cxx
index e6288ff..0e1015c 100644
--- a/sd/source/ui/accessibility/AccessibleOutlineView.cxx
+++ b/sd/source/ui/accessibility/AccessibleOutlineView.cxx
@@ -262,7 +262,7 @@ void SAL_CALL
 /// Create a name for this view.
 OUString
     AccessibleOutlineView::CreateAccessibleName()
-    throw (::com::sun::star::uno::RuntimeException)
+    throw (::com::sun::star::uno::RuntimeException, std::exception)
 {
     SolarMutexGuard aGuard;
 
diff --git a/sd/source/ui/inc/AccessibleOutlineView.hxx b/sd/source/ui/inc/AccessibleOutlineView.hxx
index 02eaa7c..6fb682f 100644
--- a/sd/source/ui/inc/AccessibleOutlineView.hxx
+++ b/sd/source/ui/inc/AccessibleOutlineView.hxx
@@ -121,7 +121,7 @@ protected:
     /// Create an accessible name that contains the current view mode.
     virtual OUString
         CreateAccessibleName ()
-        throw (::com::sun::star::uno::RuntimeException) SAL_OVERRIDE;
+        throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     /// Create an accessible description that contains the current
     /// view mode.
commit e678100a40e678e48e731c5e02e1c29187c2f56a
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:14:47 2015 +0100

    coverity#1308573 Uncaught exception
    
    Change-Id: Ie3ecffe0fe91572ffff6e124075e1be1ef978731

diff --git a/connectivity/source/drivers/postgresql/pq_connection.cxx b/connectivity/source/drivers/postgresql/pq_connection.cxx
index f26f7b6..c20f706 100644
--- a/connectivity/source/drivers/postgresql/pq_connection.cxx
+++ b/connectivity/source/drivers/postgresql/pq_connection.cxx
@@ -678,7 +678,7 @@ Reference< XNameAccess > Connection::getUsers()
 
 
 Reference< XInterface >  ConnectionCreateInstance(
-    const Reference< XComponentContext > & ctx ) throw (Exception)
+    const Reference< XComponentContext > & ctx ) throw (Exception, std::exception)
 {
     ::rtl::Reference< RefCountedMutex > ref = new RefCountedMutex();
     return * new Connection( ref, ctx );
commit 5e1206f0925b4dddcdede41df7d897b4759813ad
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:11:32 2015 +0100

    coverity#1308571 Uncaught exception
    
    Change-Id: Ib844cbd5c5d7be28e4ee2922caf06fb43c7b8a46

diff --git a/include/svx/AccessibleGraphicShape.hxx b/include/svx/AccessibleGraphicShape.hxx
index 6245f52..d4b8808 100644
--- a/include/svx/AccessibleGraphicShape.hxx
+++ b/include/svx/AccessibleGraphicShape.hxx
@@ -96,7 +96,7 @@ protected:
     /// Create a description string that contains the accessible description.
     virtual OUString
         CreateAccessibleDescription ()
-        throw (::com::sun::star::uno::RuntimeException) SAL_OVERRIDE;
+        throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 private:
     AccessibleGraphicShape (const AccessibleGraphicShape&) SAL_DELETED_FUNCTION;
diff --git a/sd/source/ui/accessibility/AccessiblePresentationGraphicShape.cxx b/sd/source/ui/accessibility/AccessiblePresentationGraphicShape.cxx
index 8d63fbe..b41b1a0 100644
--- a/sd/source/ui/accessibility/AccessiblePresentationGraphicShape.cxx
+++ b/sd/source/ui/accessibility/AccessiblePresentationGraphicShape.cxx
@@ -76,7 +76,7 @@ OUString
 
 OUString
     AccessiblePresentationGraphicShape::CreateAccessibleDescription()
-    throw (::com::sun::star::uno::RuntimeException)
+    throw (::com::sun::star::uno::RuntimeException, std::exception)
 {
     //    return createAccessibleName ();
     DescriptionGenerator aDG (mxShape);
diff --git a/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx b/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx
index cee2b8d..9dc504f 100644
--- a/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx
+++ b/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx
@@ -55,7 +55,7 @@ public:
     /// Create a description string that contains the accessible description.
     virtual OUString
         CreateAccessibleDescription ()
-        throw (::com::sun::star::uno::RuntimeException) SAL_OVERRIDE;
+        throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     /// Return this object's role.
     virtual sal_Int16 SAL_CALL getAccessibleRole () throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 };
diff --git a/svx/source/accessibility/AccessibleGraphicShape.cxx b/svx/source/accessibility/AccessibleGraphicShape.cxx
index a688a8a..d24b15e 100644
--- a/svx/source/accessibility/AccessibleGraphicShape.cxx
+++ b/svx/source/accessibility/AccessibleGraphicShape.cxx
@@ -175,7 +175,7 @@ OUString
 }
 
 OUString AccessibleGraphicShape::CreateAccessibleDescription()
-    throw (::com::sun::star::uno::RuntimeException)
+    throw (::com::sun::star::uno::RuntimeException, std::exception)
 {
     //Don't use the same information for accessible name and accessible description.
     OUString sDesc;
commit 3e9a13f16cf439876775ed5009690862a8d276d1
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:10:38 2015 +0100

    coverity#1308570 Uncaught exception
    
    Change-Id: I9009a96e09943b5339c6ef6995d9a28c3e4b596c

diff --git a/framework/inc/xml/xmlnamespaces.hxx b/framework/inc/xml/xmlnamespaces.hxx
index 6ce9351..e56b11a 100644
--- a/framework/inc/xml/xmlnamespaces.hxx
+++ b/framework/inc/xml/xmlnamespaces.hxx
@@ -41,7 +41,7 @@ class FWE_DLLPUBLIC XMLNamespaces
         OUString applyNSToAttributeName( const OUString& ) const
             throw(  ::com::sun::star::xml::sax::SAXException, std::exception );
         OUString applyNSToElementName( const OUString& ) const
-            throw(  ::com::sun::star::xml::sax::SAXException );
+            throw(  ::com::sun::star::xml::sax::SAXException, std::exception );
 
     private:
         typedef ::std::map< OUString, OUString > NamespaceMap;
diff --git a/framework/source/fwe/xml/xmlnamespaces.cxx b/framework/source/fwe/xml/xmlnamespaces.cxx
index f65e669..a208e44 100644
--- a/framework/source/fwe/xml/xmlnamespaces.cxx
+++ b/framework/source/fwe/xml/xmlnamespaces.cxx
@@ -118,7 +118,7 @@ OUString XMLNamespaces::applyNSToAttributeName( const OUString& aName ) const th
     return aName;
 }
 
-OUString XMLNamespaces::applyNSToElementName( const OUString& aName ) const   throw( SAXException )
+OUString XMLNamespaces::applyNSToElementName( const OUString& aName ) const   throw( SAXException, std::exception )
 {
     // xml draft: element names can have a default namespace
 
commit fab69b025b7011728fe105215ab790811db61ca1
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:09:39 2015 +0100

    coverity#1308569 Uncaught exception
    
    Change-Id: Ie3f4d0d0d8197d5dcbba7c266133e06e110843df

diff --git a/vcl/workben/svdem.cxx b/vcl/workben/svdem.cxx
index 365ad38..6889c0d 100644
--- a/vcl/workben/svdem.cxx
+++ b/vcl/workben/svdem.cxx
@@ -61,6 +61,11 @@ SAL_IMPLEMENT_MAIN()
         SAL_WARN("vcl.app", "Fatal exception: " << e.Message);
         return 1;
     }
+    catch (const std::exception &e)
+    {
+        fprintf(stderr, "fatal error: %s\n", e.what());
+        return 1;
+    }
 
     return 0;
 }
commit ed450f7e65198aebd19d745991358302ca14d0c9
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:08:26 2015 +0100

    coverity#1308568 Uncaught exception
    
    Change-Id: Ic9e4136619d9babe5333f815c9a0268830fbc0d6

diff --git a/scaddins/source/pricing/pricing.cxx b/scaddins/source/pricing/pricing.cxx
index 130f9b0..2f6b668 100644
--- a/scaddins/source/pricing/pricing.cxx
+++ b/scaddins/source/pricing/pricing.cxx
@@ -271,7 +271,7 @@ OUString ScaPricingAddIn::GetDisplFuncStr( sal_uInt16 nResId ) throw( uno::Runti
     return ScaResStringLoader( RID_PRICING_FUNCTION_NAMES, nResId, GetResMgr() ).GetString();
 }
 
-OUString ScaPricingAddIn::GetFuncDescrStr( sal_uInt16 nResId, sal_uInt16 nStrIndex ) throw( uno::RuntimeException )
+OUString ScaPricingAddIn::GetFuncDescrStr( sal_uInt16 nResId, sal_uInt16 nStrIndex ) throw( uno::RuntimeException, std::exception )
 {
     OUString aRet;
 
diff --git a/scaddins/source/pricing/pricing.hxx b/scaddins/source/pricing/pricing.hxx
index d125a2e..92a9d20 100644
--- a/scaddins/source/pricing/pricing.hxx
+++ b/scaddins/source/pricing/pricing.hxx
@@ -323,7 +323,7 @@ private:
     void                        InitData();
 
     OUString             GetDisplFuncStr( sal_uInt16 nResId ) throw( css::uno::RuntimeException, std::exception );
-    OUString             GetFuncDescrStr( sal_uInt16 nResId, sal_uInt16 nStrIndex ) throw( css::uno::RuntimeException );
+    OUString             GetFuncDescrStr( sal_uInt16 nResId, sal_uInt16 nStrIndex ) throw( css::uno::RuntimeException, std::exception );
 
 public:
                                 ScaPricingAddIn();
commit 4e4760ef42b2a1da76d697d607a78ac39ac25ed3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:08:01 2015 +0100

    coverity#1308596 Uncaught exception
    
    Change-Id: I0784ad02e540757a0cb25b0e216b7bab4d2061f8

diff --git a/sc/source/ui/vba/excelvbahelper.cxx b/sc/source/ui/vba/excelvbahelper.cxx
index da36330..835effe 100644
--- a/sc/source/ui/vba/excelvbahelper.cxx
+++ b/sc/source/ui/vba/excelvbahelper.cxx
@@ -249,7 +249,7 @@ getViewFrame( const uno::Reference< frame::XModel >& xModel )
 }
 
 uno::Reference< XHelperInterface >
-getUnoSheetModuleObj( const uno::Reference< sheet::XSpreadsheet >& xSheet ) throw ( uno::RuntimeException )
+getUnoSheetModuleObj( const uno::Reference< sheet::XSpreadsheet >& xSheet ) throw ( uno::RuntimeException, std::exception )
 {
     uno::Reference< beans::XPropertySet > xProps( xSheet, uno::UNO_QUERY_THROW );
     OUString sCodeName;
diff --git a/sc/source/ui/vba/excelvbahelper.hxx b/sc/source/ui/vba/excelvbahelper.hxx
index 9de833c..951b81a 100644
--- a/sc/source/ui/vba/excelvbahelper.hxx
+++ b/sc/source/ui/vba/excelvbahelper.hxx
@@ -50,7 +50,7 @@ SfxViewFrame* getViewFrame( const css::uno::Reference< css::frame::XModel >& xMo
 css::uno::Reference< css::sheet::XUnnamedDatabaseRanges > GetUnnamedDataBaseRanges( ScDocShell* pShell ) throw ( css::uno::RuntimeException );
 
 css::uno::Reference< css::sheet::XDatabaseRange > GetAutoFiltRange( ScDocShell* pShell, sal_Int16 nSheet ) throw ( css::uno::RuntimeException );
-css::uno::Reference< ooo::vba::XHelperInterface > getUnoSheetModuleObj( const css::uno::Reference< css::sheet::XSpreadsheet >& xSheet ) throw ( css::uno::RuntimeException );
+css::uno::Reference< ooo::vba::XHelperInterface > getUnoSheetModuleObj( const css::uno::Reference< css::sheet::XSpreadsheet >& xSheet ) throw ( css::uno::RuntimeException, std::exception );
 css::uno::Reference< ooo::vba::XHelperInterface > getUnoSheetModuleObj( const css::uno::Reference< css::sheet::XSheetCellRangeContainer >& xRanges ) throw ( css::uno::RuntimeException );
 css::uno::Reference< ooo::vba::XHelperInterface > getUnoSheetModuleObj( const css::uno::Reference< css::table::XCellRange >& xRange ) throw ( css::uno::RuntimeException );
 css::uno::Reference< ooo::vba::XHelperInterface > getUnoSheetModuleObj( const css::uno::Reference< css::table::XCell >& xCell ) throw ( css::uno::RuntimeException );
commit 662f294a485a16f89290b62d81346a154beb6701
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:02:27 2015 +0100

    coverity#1308597 Uncaught exception
    
    Change-Id: Ibcbdd39952a573e72edbe1813c9d8b73c5e32f78

diff --git a/scaddins/source/analysis/analysis.cxx b/scaddins/source/analysis/analysis.cxx
index cfa9f30..85ab00c 100644
--- a/scaddins/source/analysis/analysis.cxx
+++ b/scaddins/source/analysis/analysis.cxx
@@ -103,7 +103,7 @@ AnalysisFuncRes::AnalysisFuncRes( ResId& rRes, ResMgr& rResMgr, sal_uInt16 nInd,
     FreeResource();
 }
 
-OUString AnalysisAddIn::GetFuncDescrStr( sal_uInt16 nResId, sal_uInt16 nStrIndex ) throw( uno::RuntimeException )
+OUString AnalysisAddIn::GetFuncDescrStr( sal_uInt16 nResId, sal_uInt16 nStrIndex ) throw( uno::RuntimeException, std::exception )
 {
     OUString                      aRet;
     AnalysisResourcePublisher   aResPubl( AnalysisResId( RID_ANALYSIS_FUNCTION_DESCRIPTIONS, GetResMgr() ) );
diff --git a/scaddins/source/analysis/analysis.hxx b/scaddins/source/analysis/analysis.hxx
index a387918..560ec5d 100644
--- a/scaddins/source/analysis/analysis.hxx
+++ b/scaddins/source/analysis/analysis.hxx
@@ -64,7 +64,7 @@ private:
 
     ResMgr&                     GetResMgr() throw( css::uno::RuntimeException, std::exception );
     OUString                      GetDisplFuncStr( sal_uInt16 nFuncNum ) throw( css::uno::RuntimeException );
-    OUString                      GetFuncDescrStr( sal_uInt16 nResId, sal_uInt16 nStrIndex ) throw( css::uno::RuntimeException );
+    OUString                      GetFuncDescrStr( sal_uInt16 nResId, sal_uInt16 nStrIndex ) throw( css::uno::RuntimeException, std::exception );
     void                        InitDefLocales();
     inline const css::lang::Locale& GetLocale( sal_uInt32 nInd );
     void                        InitData();
commit 9202cab16767ee4008074434055796f9be99f6b4
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 09:00:59 2015 +0100

    coverity#1308598 Uncaught exception
    
    Change-Id: Id65e076641506e128c27cec4f50bc677e808fa95

diff --git a/scripting/source/stringresource/stringresource.cxx b/scripting/source/stringresource/stringresource.cxx
index 911fc8e..53cdcbf 100644
--- a/scripting/source/stringresource/stringresource.cxx
+++ b/scripting/source/stringresource/stringresource.cxx
@@ -999,7 +999,7 @@ void StringResourcePersistenceImpl::implStoreAtStorage
     bool bUsedForStore,
     bool bStoreAll
 )
-    throw (Exception, RuntimeException)
+    throw (Exception, RuntimeException, std::exception)
 {
     // Delete files for deleted locales
     if( bUsedForStore )
diff --git a/scripting/source/stringresource/stringresource.hxx b/scripting/source/stringresource/stringresource.hxx
index d6a5ac3..853b214 100644
--- a/scripting/source/stringresource/stringresource.hxx
+++ b/scripting/source/stringresource/stringresource.hxx
@@ -281,7 +281,7 @@ protected:
         bool bUsedForStore,
         bool bStoreAll
     )
-    throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+    throw (css::uno::Exception, css::uno::RuntimeException, std::exception);
 
     void implKillRemovedLocaleFiles
     (
commit 6a151630e3084df42979d5c3b8083fef55449230
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 08:58:56 2015 +0100

    coverity#1308601 Uncaught exception
    
    Change-Id: I231a5b94ded2c936edf84ff7dc59332e628150cd

diff --git a/connectivity/source/drivers/firebird/Driver.cxx b/connectivity/source/drivers/firebird/Driver.cxx
index 0a65ea9..8e38cbb 100644
--- a/connectivity/source/drivers/firebird/Driver.cxx
+++ b/connectivity/source/drivers/firebird/Driver.cxx
@@ -49,7 +49,7 @@ namespace connectivity
     namespace firebird
     {
         Reference< XInterface >  SAL_CALL FirebirdDriver_CreateInstance(
-            const Reference< XMultiServiceFactory >& _rxFactory) throw( Exception )
+            const Reference< XMultiServiceFactory >& _rxFactory) throw( Exception, std::exception )
         {
             SAL_INFO("connectivity.firebird", "FirebirdDriver_CreateInstance()" );
             return *(new FirebirdDriver(comphelper::getComponentContext(_rxFactory)));
diff --git a/connectivity/source/drivers/firebird/Driver.hxx b/connectivity/source/drivers/firebird/Driver.hxx
index 34bfb97..d01707d 100644
--- a/connectivity/source/drivers/firebird/Driver.hxx
+++ b/connectivity/source/drivers/firebird/Driver.hxx
@@ -38,7 +38,7 @@ namespace connectivity
         // 3: Is IB6 -- minimum required for delimited identifiers.
         static const int FIREBIRD_SQL_DIALECT = 3;
 
-        ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL FirebirdDriver_CreateInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory) throw( ::com::sun::star::uno::Exception );
+        ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL FirebirdDriver_CreateInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory) throw( ::com::sun::star::uno::Exception, std::exception );
 
         typedef ::cppu::WeakComponentImplHelper3<   ::com::sun::star::sdbc::XDriver,
                                                     ::com::sun::star::sdbcx::XDataDefinitionSupplier,
commit cdc94a0e32a7295cfe939c1b83a95d3412e2a9ee
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Jun 29 08:58:22 2015 +0100

    coverity#1308602 Uncaught exception
    
    Change-Id: I5bee9695bbd294ff56ae7511f742b31e58bcc5bc

diff --git a/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx b/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
index c127841..7b2fbf1 100644
--- a/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
@@ -1603,7 +1603,7 @@ uno::Sequence<sal_Int8> SAL_CALL
 //=====  internal  ========================================================
 
 OUString SAL_CALL ScAccessibleDocumentPagePreview::createAccessibleDescription()
-                    throw (uno::RuntimeException)
+                    throw (uno::RuntimeException, std::exception)
 {
     OUString sDescription = OUString(ScResId(STR_ACC_PREVIEWDOC_DESCR));
     return sDescription;
diff --git a/sc/source/ui/inc/AccessibleDocumentPagePreview.hxx b/sc/source/ui/inc/AccessibleDocumentPagePreview.hxx
index 0a05bb7..b83a38c 100644
--- a/sc/source/ui/inc/AccessibleDocumentPagePreview.hxx
+++ b/sc/source/ui/inc/AccessibleDocumentPagePreview.hxx
@@ -110,7 +110,7 @@ protected:
     /// Return this object's description.
     virtual OUString SAL_CALL
         createAccessibleDescription()
-        throw (::com::sun::star::uno::RuntimeException) SAL_OVERRIDE;
+        throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     /// Return the object's current name.
     virtual OUString SAL_CALL
commit 7192cb0f32632ba4095ba0316109cc2eb7f1b218
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Mon Jun 29 09:58:52 2015 +0200

    coverity#1308430 pSh may be 0 here
    
    Change-Id: I2aaee946bdc5a22cf5a83e1e50714556260280f3

diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx
index f25208b..a29191b 100644
--- a/sw/source/core/layout/layact.cxx
+++ b/sw/source/core/layout/layact.cxx
@@ -1026,7 +1026,7 @@ bool SwLayAction::IsShortCut( SwPageFrm *&prPage )
             }
         }
         else
-            FormatLayout( pSh->GetOut(), prPage );
+            FormatLayout( pSh ? pSh->GetOut() : 0, prPage );
         if ( IsAgain() )
             return false;
     }
commit b55166d266f31caf7bd85e54a59c7e8b49204b16
Author: Noel Grandin <noel at peralex.com>
Date:   Mon Jun 29 10:11:53 2015 +0200

    Revert "return and use std::vector from OInterfaceContainerHelper"
    
    This reverts commit e57314f61f67b093510c5a8a8f34a62126ba8734.

diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx
index 31e3786..e38dfce 100644
--- a/chart2/source/model/main/ChartModel.cxx
+++ b/chart2/source/model/main/ChartModel.cxx
@@ -227,9 +227,10 @@ bool ChartModel::impl_isControllerConnected( const uno::Reference< frame::XContr
 {
     try
     {
-        for( uno::Reference<uno::XInterface> & rInterface : m_aControllers.getElements() )
+        uno::Sequence< uno::Reference<uno::XInterface> > aSeq = m_aControllers.getElements();
+        for( sal_Int32 nN = aSeq.getLength(); nN--; )
         {
-            if( rInterface == xController )
+            if( aSeq[nN] == xController )
                 return true;
         }
     }
diff --git a/comphelper/source/misc/accessibleeventnotifier.cxx b/comphelper/source/misc/accessibleeventnotifier.cxx
index 224c44d..d8a3b36 100644
--- a/comphelper/source/misc/accessibleeventnotifier.cxx
+++ b/comphelper/source/misc/accessibleeventnotifier.cxx
@@ -255,7 +255,7 @@ namespace comphelper
 
     void AccessibleEventNotifier::addEvent( const TClientId _nClient, const AccessibleEventObject& _rEvent )
     {
-        std::vector< Reference< XInterface > > aListeners;
+        Sequence< Reference< XInterface > > aListeners;
 
         // --- <mutex lock> -------------------------------
         {
@@ -267,22 +267,25 @@ namespace comphelper
                 return;
 
             // since we're synchronous, again, we want to notify immediately
-            aListeners = aClientPos->second->getElementsAsVector();
+            aListeners = aClientPos->second->getElements();
         }
         // --- </mutex lock> ------------------------------
 
-        // default handling: loop through all listeners, and notify them
-        for ( const Reference< XInterface > & rL : aListeners )
+            // default handling: loop through all listeners, and notify them
+        const Reference< XInterface >* pListeners = aListeners.getConstArray();
+        const Reference< XInterface >* pListenersEnd = pListeners + aListeners.getLength();
+        while ( pListeners != pListenersEnd )
         {
             try
             {
-                static_cast< XAccessibleEventListener* >( rL.get() )->notifyEvent( _rEvent );
+                static_cast< XAccessibleEventListener* >( pListeners->get() )->notifyEvent( _rEvent );
             }
             catch( const Exception& )
             {
                 // no assertion, because a broken access remote bridge or something like this
                 // can cause this exception
             }
+            ++pListeners;
         }
     }
 
diff --git a/cppuhelper/qa/ifcontainer/cppu_ifcontainer.cxx b/cppuhelper/qa/ifcontainer/cppu_ifcontainer.cxx
index e98aab2..ff7c792 100644
--- a/cppuhelper/qa/ifcontainer/cppu_ifcontainer.cxx
+++ b/cppuhelper/qa/ifcontainer/cppu_ifcontainer.cxx
@@ -112,11 +112,12 @@ namespace cppu_ifcontainer
                 pContainer->addInterface(xRef);
                 aListeners.push_back(xRef);
             }
-            std::vector< Reference< XInterface > > aElements = pContainer->getElementsAsVector();
+            Sequence< Reference< XInterface > > aElements;
+            aElements = pContainer->getElements();
 
             CPPUNIT_ASSERT_MESSAGE("query contents",
-                                   (int)aElements.size() == nTests);
-            if ((int)aElements.size() == nTests)
+                                   (int)aElements.getLength() == nTests);
+            if ((int)aElements.getLength() == nTests)
             {
                 for (i = 0; i < nTests; i++)
                 {
@@ -156,8 +157,8 @@ namespace cppu_ifcontainer
                 pHelper = pContainer->getContainer(pTypes[i]);
 
                 CPPUNIT_ASSERT_MESSAGE("no helper", pHelper != NULL);
-                std::vector<Reference< XInterface > > aSeq = pHelper->getElementsAsVector();
-                CPPUNIT_ASSERT_MESSAGE("wrong num elements", aSeq.size() == 2);
+                Sequence<Reference< XInterface > > aSeq = pHelper->getElements();
+                CPPUNIT_ASSERT_MESSAGE("wrong num elements", aSeq.getLength() == 2);
                 CPPUNIT_ASSERT_MESSAGE("match", aSeq[0] == xRefs[i*2]);
                 CPPUNIT_ASSERT_MESSAGE("match", aSeq[1] == xRefs[i*2+1]);
             }
@@ -174,8 +175,8 @@ namespace cppu_ifcontainer
                 pHelper = pContainer->getContainer(pTypes[i]);
 
                 CPPUNIT_ASSERT_MESSAGE("no helper", pHelper != NULL);
-                std::vector<Reference< XInterface > > aSeq = pHelper->getElementsAsVector();
-                CPPUNIT_ASSERT_MESSAGE("wrong num elements", aSeq.size() == 1);
+                Sequence<Reference< XInterface > > aSeq = pHelper->getElements();
+                CPPUNIT_ASSERT_MESSAGE("wrong num elements", aSeq.getLength() == 1);
                 CPPUNIT_ASSERT_MESSAGE("match", aSeq[0] == xRefs[i*2]);
             }
 
@@ -190,8 +191,8 @@ namespace cppu_ifcontainer
 
                 pHelper = pContainer->getContainer(pTypes[i]);
                 CPPUNIT_ASSERT_MESSAGE("no helper", pHelper != NULL);
-                std::vector<Reference< XInterface > > aSeq = pHelper->getElementsAsVector();
-                CPPUNIT_ASSERT_MESSAGE("wrong num elements", aSeq.size() == 0);
+                Sequence<Reference< XInterface > > aSeq = pHelper->getElements();
+                CPPUNIT_ASSERT_MESSAGE("wrong num elements", aSeq.getLength() == 0);
             }
 
             delete pContainer;
diff --git a/cppuhelper/source/gcc3.map b/cppuhelper/source/gcc3.map
index 1a15f35..12c29834a 100644
--- a/cppuhelper/source/gcc3.map
+++ b/cppuhelper/source/gcc3.map
@@ -430,12 +430,6 @@ global:
     _ZN4cppu15supportsServiceEPN3com3sun4star4lang12XServiceInfoERKN3rtl8OUStringE; # cppu::supportsService(com::sun::star::lang::XServiceInfo*, rtl::OUString const&)
 } UDK_3.8;
 
-
-PRIVATE_cppuhelper.1 { # LibreOffice 5.1
-    global:
-        _ZNK4cppu25OInterfaceContainerHelper19getElementsAsVectorEv; # std::vector< Reference<XInterface> > OInterfaceContainerHelper::getElementsAsVector() const
-};
-
 # Unique libstdc++ symbols:
 GLIBCXX_3.4 {
     global:
diff --git a/cppuhelper/source/interfacecontainer.cxx b/cppuhelper/source/interfacecontainer.cxx
index 93a3836..5bd20a4 100644
--- a/cppuhelper/source/interfacecontainer.cxx
+++ b/cppuhelper/source/interfacecontainer.cxx
@@ -28,7 +28,6 @@
 #include <memory>
 
 #include <com/sun/star/lang/XEventListener.hpp>
-#include <iterator>
 
 
 using namespace osl;
@@ -37,6 +36,32 @@ using namespace com::sun::star::lang;
 
 namespace cppu
 {
+/**
+ * Reallocate the sequence.
+ */
+static void realloc( Sequence< Reference< XInterface > > & rSeq, sal_Int32 nNewLen )
+{
+    rSeq.realloc( nNewLen );
+}
+
+/**
+ * Remove an element from an interface sequence.
+ */
+static void sequenceRemoveElementAt( Sequence< Reference< XInterface > > & rSeq, sal_Int32 index )
+{
+    sal_Int32 nNewLen = rSeq.getLength() - 1;
+
+    Sequence< Reference< XInterface > > aDestSeq( rSeq.getLength() - 1 );
+    // getArray on a const sequence is faster
+    const Reference< XInterface > * pSource = ((const Sequence< Reference< XInterface > > &)rSeq).getConstArray();
+    Reference< XInterface > * pDest = aDestSeq.getArray();
+    sal_Int32 i = 0;
+    for( ; i < index; i++ )
+        pDest[i] = pSource[i];
+    for( sal_Int32 j = i ; j < nNewLen; j++ )
+        pDest[j] = pSource[j+1];
+    rSeq = aDestSeq;
+}
 
 #ifdef _MSC_VER
 #pragma warning( disable: 4786 )
@@ -54,7 +79,7 @@ OInterfaceIteratorHelper::OInterfaceIteratorHelper( OInterfaceContainerHelper &
     if( bIsList )
     {
         rCont.bInUse = sal_True;
-        nRemain = aData.pAsVector->size();
+        nRemain = aData.pAsSequence->getLength();
     }
     else if( aData.pAsInterface )
     {
@@ -71,7 +96,7 @@ OInterfaceIteratorHelper::~OInterfaceIteratorHelper()
     {
     MutexGuard aGuard( rCont.rMutex );
     // bResetInUse protect the iterator against recursion
-    bShared = aData.pAsVector == rCont.aData.pAsVector && rCont.bIsList;
+    bShared = aData.pAsSequence == rCont.aData.pAsSequence && rCont.bIsList;
     if( bShared )
     {
         OSL_ENSURE( rCont.bInUse, "OInterfaceContainerHelper must be in use" );
@@ -83,7 +108,7 @@ OInterfaceIteratorHelper::~OInterfaceIteratorHelper()
     {
         if( bIsList )
             // Sequence owned by the iterator
-            delete aData.pAsVector;
+            delete aData.pAsSequence;
         else if( aData.pAsInterface )
             // Interface is acquired by the iterator
             aData.pAsInterface->release();
@@ -96,7 +121,8 @@ XInterface * OInterfaceIteratorHelper::next()
     {
         nRemain--;
         if( bIsList )
-            return (*aData.pAsVector)[nRemain].get();
+            // typecase to const,so the getArray method is faster
+            return aData.pAsSequence->getConstArray()[nRemain].get();
         else if( aData.pAsInterface )
             return aData.pAsInterface;
     }
@@ -109,8 +135,8 @@ void OInterfaceIteratorHelper::remove()
     if( bIsList )
     {
         OSL_ASSERT( nRemain >= 0 &&
-                    nRemain < static_cast<sal_Int32>(aData.pAsVector->size()) );
-        XInterface * p = (*aData.pAsVector)[nRemain].get();
+                    nRemain < aData.pAsSequence->getLength() );
+        XInterface * p = aData.pAsSequence->getConstArray()[nRemain].get();
         rCont.removeInterface( * reinterpret_cast< const Reference< XInterface > * >( &p ) );
     }
     else
@@ -131,7 +157,7 @@ OInterfaceContainerHelper::~OInterfaceContainerHelper()
 {
     OSL_ENSURE( !bInUse, "~OInterfaceContainerHelper but is in use" );
     if( bIsList )
-        delete aData.pAsVector;
+        delete aData.pAsSequence;
     else if( aData.pAsInterface )
         aData.pAsInterface->release();
 }
@@ -140,30 +166,17 @@ sal_Int32 OInterfaceContainerHelper::getLength() const
 {
     MutexGuard aGuard( rMutex );
     if( bIsList )
-        return aData.pAsVector->size();
+        return aData.pAsSequence->getLength();
     else if( aData.pAsInterface )
         return 1;
     return 0;
 }
 
-std::vector< Reference<XInterface> > OInterfaceContainerHelper::getElementsAsVector() const
-{
-    MutexGuard aGuard( rMutex );
-    if( bIsList )
-        return *aData.pAsVector;
-    else if( aData.pAsInterface )
-    {
-        Reference<XInterface> x( aData.pAsInterface );
-        return { x };
-    }
-    return std::vector< Reference< XInterface > >();
-}
-
-css::uno::Sequence< Reference<XInterface> > OInterfaceContainerHelper::getElements() const
+Sequence< Reference<XInterface> > OInterfaceContainerHelper::getElements() const
 {
     MutexGuard aGuard( rMutex );
     if( bIsList )
-        return css::uno::Sequence< Reference<XInterface> >( aData.pAsVector->data(), static_cast<sal_Int32>(aData.pAsVector->size()) );
+        return *aData.pAsSequence;
     else if( aData.pAsInterface )
     {
         Reference<XInterface> x( aData.pAsInterface );
@@ -180,7 +193,7 @@ void OInterfaceContainerHelper::copyAndResetInUse()
         // this should be the worst case. If a iterator is active
         // and a new Listener is added.
         if( bIsList )
-            aData.pAsVector = new std::vector< Reference< XInterface > >( *aData.pAsVector );
+            aData.pAsSequence = new Sequence< Reference< XInterface > >( *aData.pAsSequence );
         else if( aData.pAsInterface )
             aData.pAsInterface->acquire();
 
@@ -197,16 +210,19 @@ sal_Int32 OInterfaceContainerHelper::addInterface( const Reference<XInterface> &
 
     if( bIsList )
     {
-        aData.pAsVector->push_back( rListener );
-        return aData.pAsVector->size();
+        sal_Int32 nLen = aData.pAsSequence->getLength();
+        realloc( *aData.pAsSequence, nLen +1 );
+        aData.pAsSequence->getArray()[ nLen ] = rListener;
+        return nLen +1;
     }
     else if( aData.pAsInterface )
     {
-        std::vector< Reference< XInterface > > * pSeq = new std::vector< Reference< XInterface > >( 2 );
-        (*pSeq)[0] = aData.pAsInterface;
-        (*pSeq)[1] = rListener;
+        Sequence< Reference< XInterface > > * pSeq = new Sequence< Reference< XInterface > >( 2 );
+        Reference<XInterface> * pArray = pSeq->getArray();
+        pArray[0] = aData.pAsInterface;
+        pArray[1] = rListener;
         aData.pAsInterface->release();
-        aData.pAsVector = pSeq;
+        aData.pAsSequence = pSeq;
         bIsList = sal_True;
         return 2;
     }
@@ -228,41 +244,43 @@ sal_Int32 OInterfaceContainerHelper::removeInterface( const Reference<XInterface
 
     if( bIsList )
     {
-        // It is not valid to compare the pointer directly, but it's faster.
-        bool bFound = false;
-        for( auto it = std::begin(*aData.pAsVector); it != std::end(*aData.pAsVector); ++it )
+        const Reference<XInterface> * pL = aData.pAsSequence->getConstArray();
+        sal_Int32 nLen = aData.pAsSequence->getLength();
+        sal_Int32 i;
+        for( i = 0; i < nLen; i++ )
         {
-            if( (*it).get() == rListener.get() )
+            // It is not valid to compare the pointer directly, but it's faster.
+            if( pL[i].get() == rListener.get() )
             {
-                aData.pAsVector->erase(it);
-                bFound = true;
+                sequenceRemoveElementAt( *aData.pAsSequence, i );
                 break;
             }
         }
-        if (!bFound)
+
+        if( i == nLen )
         {
             // interface not found, use the correct compare method
-            for( auto it = std::begin(*aData.pAsVector); it != std::end(*aData.pAsVector); ++it )
+            for( i = 0; i < nLen; i++ )
             {
-                if( *it == rListener )
+                if( pL[i] == rListener )
                 {
-                    aData.pAsVector->erase(it);
+                    sequenceRemoveElementAt(*aData.pAsSequence, i );
                     break;
                 }
             }
         }
 
-        if( aData.pAsVector->size() == 1 )
+        if( aData.pAsSequence->getLength() == 1 )
         {
-            XInterface * p = (*aData.pAsVector)[0].get();
+            XInterface * p = aData.pAsSequence->getConstArray()[0].get();
             p->acquire();
-            delete aData.pAsVector;
+            delete aData.pAsSequence;
             aData.pAsInterface = p;
             bIsList = sal_False;
             return 1;
         }
         else
-            return aData.pAsVector->size();
+            return aData.pAsSequence->getLength();
     }
     else if( aData.pAsInterface && Reference<XInterface>( aData.pAsInterface ) == rListener )
     {
diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx
index 8220327..f1723a9 100644
--- a/dbaccess/source/core/api/RowSet.cxx
+++ b/dbaccess/source/core/api/RowSet.cxx
@@ -104,15 +104,22 @@ com_sun_star_comp_dba_ORowSet_get_implementation(css::uno::XComponentContext* co
 }
 
 #define NOTIFY_LISTERNERS_CHECK(_rListeners,T,method)                             \
-    std::vector< Reference< XInterface > > aListenerSeq = _rListeners.getElementsAsVector(); \
+    Sequence< Reference< XInterface > > aListenerSeq = _rListeners.getElements(); \
+                                                                                  \
+    const Reference< XInterface >* pxIntBegin = aListenerSeq.getConstArray();     \
+    const Reference< XInterface >* pxInt = pxIntBegin + aListenerSeq.getLength(); \
                                                                                   \
     _rGuard.clear();                                                              \
     bool bCheck = true;                                                           \
-    for( auto iter = aListenerSeq.rbegin(); iter != aListenerSeq.rend() && bCheck; ++iter ) \
+    while( pxInt > pxIntBegin && bCheck )                                         \
     {                                                                             \
         try                                                                       \
         {                                                                         \
-            bCheck = static_cast< T* >( (*iter).get() )->method(aEvt);         \
+            while( pxInt > pxIntBegin && bCheck )                                 \
+            {                                                                     \
+                --pxInt;                                                          \
+                bCheck = static_cast< T* >( pxInt->get() )->method(aEvt);         \
+            }                                                                     \
         }                                                                         \
         catch( RuntimeException& )                                                \
         {                                                                         \
diff --git a/dbaccess/source/inc/apitools.hxx b/dbaccess/source/inc/apitools.hxx
index 583fff3..6672420 100644
--- a/dbaccess/source/inc/apitools.hxx
+++ b/dbaccess/source/inc/apitools.hxx
@@ -328,14 +328,21 @@ public:
     return new ::cppu::OPropertyArrayHelper(aDescriptor);
 
 #define NOTIFY_LISTERNERS(_rListeners,T,method)                                   \
-    std::vector< Reference< XInterface > > aListenerSeq = _rListeners.getElementsAsVector(); \
+    Sequence< Reference< XInterface > > aListenerSeq = _rListeners.getElements(); \
+                                                                                  \
+    const Reference< XInterface >* pxIntBegin = aListenerSeq.getConstArray();     \
+    const Reference< XInterface >* pxInt = pxIntBegin + aListenerSeq.getLength(); \
                                                                                   \
     _rGuard.clear();                                                              \
-    for( auto iter = aListenerSeq.rbegin(); iter != aListenerSeq.rend(); ++iter ) \
+    while( pxInt > pxIntBegin )                                                   \
     {                                                                             \
         try                                                                       \
         {                                                                         \
-            static_cast< T* >( (*iter).get() )->method(aEvt);  \
+            while( pxInt > pxIntBegin )                                           \
+            {                                                                     \
+                --pxInt;                                                          \
+                static_cast< T* >( pxInt->get() )->method(aEvt);                  \
+            }                                                                     \
         }                                                                         \
         catch( RuntimeException& )                                                \
         {                                                                         \
diff --git a/desktop/source/deployment/registry/dp_backend.cxx b/desktop/source/deployment/registry/dp_backend.cxx
index 6963e86..720e8ab 100644
--- a/desktop/source/deployment/registry/dp_backend.cxx
+++ b/desktop/source/deployment/registry/dp_backend.cxx
@@ -596,10 +596,10 @@ void Package::fireModified()
     ::cppu::OInterfaceContainerHelper * container = rBHelper.getContainer(
         cppu::UnoType<util::XModifyListener>::get() );
     if (container != 0) {
-        std::vector< Reference<XInterface> > elements(
-            container->getElementsAsVector() );
+        Sequence< Reference<XInterface> > elements(
+            container->getElements() );
         lang::EventObject evt( static_cast<OWeakObject *>(this) );
-        for ( sal_Int32 pos = 0; pos < (sal_Int32)elements.size(); ++pos )
+        for ( sal_Int32 pos = 0; pos < elements.getLength(); ++pos )
         {
             Reference<util::XModifyListener> xListener(
                 elements[ pos ], UNO_QUERY );
diff --git a/embedserv/source/embed/intercept.cxx b/embedserv/source/embed/intercept.cxx
index e335d12..20dcfd1 100644
--- a/embedserv/source/embed/intercept.cxx
+++ b/embedserv/source/embed/intercept.cxx
@@ -218,10 +218,10 @@ void Interceptor::generateFeatureStateEvent()
 
             cppu::OInterfaceContainerHelper* pICH =
                 m_pStatCL->getContainer(m_aInterceptedURL[i]);
-            std::vector<uno::Reference<uno::XInterface> > aSeq;
+            uno::Sequence<uno::Reference<uno::XInterface> > aSeq;
             if(pICH)
-                aSeq = pICH->getElementsAsVector();
-            if(aSeq.empty())
+                aSeq = pICH->getElements();
+            if(!aSeq.getLength())
                 continue;
 
             frame::FeatureStateEvent aStateEvent;
@@ -249,11 +249,13 @@ void Interceptor::generateFeatureStateEvent()
 
             }
 
-            for(uno::Reference<uno::XInterface> & x : aSeq)
+            for(sal_Int32 k = 0; k < aSeq.getLength(); ++k)
             {
-                uno::Reference<frame::XStatusListener> Control(x,uno::UNO_QUERY);
+                uno::Reference<frame::XStatusListener>
+                    Control(aSeq[k],uno::UNO_QUERY);
                 if(Control.is())
                     Control->statusChanged(aStateEvent);
+
             }
         }
     }
diff --git a/include/cppuhelper/interfacecontainer.h b/include/cppuhelper/interfacecontainer.h
index 74338f6..a29eba0 100644
--- a/include/cppuhelper/interfacecontainer.h
+++ b/include/cppuhelper/interfacecontainer.h
@@ -47,7 +47,7 @@ namespace detail {
     */
     union element_alias
     {
-        std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > *pAsVector;
+        ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > *pAsSequence;
         ::com::sun::star::uno::XInterface * pAsInterface;
         element_alias() : pAsInterface(0) {}
     };
@@ -155,18 +155,10 @@ public:
      */
     sal_Int32 SAL_CALL getLength() const;
 
-#ifdef LIBO_INTERNAL_ONLY
     /**
       Return all interfaces added to this container.
-      @since LibreOffice 5.1
-      Not exposed because std::vector is problematic for an ABI
      **/
-    std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > SAL_CALL getElementsAsVector() const;
-#endif
-    /**
-      Return all interfaces added to this container.
-     **/
-    css::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > SAL_CALL getElements() const;
+    ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > SAL_CALL getElements() const;
 
     /** Inserts an element into the container.  The position is not specified, thus it is not
         specified in which order events are fired.
@@ -244,14 +236,14 @@ public:
 private:
 friend class OInterfaceIteratorHelper;
     /**
-      bIsList == TRUE -> aData.pAsVector of type std::vector< XInterface >,
+      bIsList == TRUE -> aData.pAsSequence of type Sequence< XInterfaceSequence >,
       otherwise aData.pAsInterface == of type (XEventListener *)
      */
     detail::element_alias   aData;
     ::osl::Mutex &          rMutex;
     /** TRUE -> used by an iterator. */
     sal_Bool                bInUse;
-    /** TRUE -> aData.pAsVector is of type std::vector< XInterface >. */
+    /** TRUE -> aData.pAsSequence is of type Sequence< XInterfaceSequence >. */
     sal_Bool                bIsList;
 
     OInterfaceContainerHelper( const OInterfaceContainerHelper & )
diff --git a/sc/source/ui/unoobj/fielduno.cxx b/sc/source/ui/unoobj/fielduno.cxx
index b5ec70b..94c29dc 100644
--- a/sc/source/ui/unoobj/fielduno.cxx
+++ b/sc/source/ui/unoobj/fielduno.cxx
@@ -410,19 +410,32 @@ void SAL_CALL ScCellFieldsObj::refresh(  )
     if (mpRefreshListeners)
     {
         //  Call all listeners.
-        std::vector< uno::Reference< uno::XInterface > > aListeners(mpRefreshListeners->getElementsAsVector());
-        if (!aListeners.empty())
+        uno::Sequence< uno::Reference< uno::XInterface > > aListeners(mpRefreshListeners->getElements());
+        sal_uInt32 nLength(aListeners.getLength());
+        if (nLength)
         {
-            lang::EventObject aEvent;
-            aEvent.Source.set(uno::Reference< util::XRefreshable >(this));
-            for (auto & x : aListeners)
+            const uno::Reference< uno::XInterface >* pInterfaces = aListeners.getConstArray();
+            if (pInterfaces)
             {
-                try
-                {
-                    static_cast< util::XRefreshListener* >(x.get())->refreshed(aEvent);
-                }
-                catch(uno::RuntimeException&)
+                lang::EventObject aEvent;
+                aEvent.Source.set(uno::Reference< util::XRefreshable >(this));
+                sal_uInt32 i(0);
+                while (i < nLength)
                 {
+                    try
+                    {
+                        while(i < nLength)
+                        {
+                            static_cast< util::XRefreshListener* >(pInterfaces->get())->refreshed(aEvent);
+                            ++pInterfaces;
+                            ++i;
+                        }
+                    }
+                    catch(uno::RuntimeException&)
+                    {
+                        ++pInterfaces;
+                        ++i;
+                    }
                 }
             }
         }
@@ -577,19 +590,32 @@ void SAL_CALL ScHeaderFieldsObj::refresh(  )
     if (mpRefreshListeners)
     {
         //  Call all listeners.
-        std::vector< uno::Reference< uno::XInterface > > aListeners(mpRefreshListeners->getElementsAsVector());
-        if (!aListeners.empty())
+        uno::Sequence< uno::Reference< uno::XInterface > > aListeners(mpRefreshListeners->getElements());
+        sal_uInt32 nLength(aListeners.getLength());
+        if (nLength)
         {
-            lang::EventObject aEvent;
-            aEvent.Source.set(uno::Reference< util::XRefreshable >(this));
-            for (auto & x : aListeners)
+            const uno::Reference< uno::XInterface >* pInterfaces = aListeners.getConstArray();
+            if (pInterfaces)
             {
-                try
-                {
-                    static_cast< util::XRefreshListener* >(x.get())->refreshed(aEvent);
-                }
-                catch(uno::RuntimeException&)
+                lang::EventObject aEvent;
+                aEvent.Source.set(uno::Reference< util::XRefreshable >(this));
+                sal_uInt32 i(0);
+                while (i < nLength)
                 {
+                    try
+                    {
+                        while(i < nLength)
+                        {
+                            static_cast< util::XRefreshListener* >(pInterfaces->get())->refreshed(aEvent);
+                            ++pInterfaces;
+                            ++i;
+                        }
+                    }
+                    catch(uno::RuntimeException&)
+                    {
+                        ++pInterfaces;
+                        ++i;
+                    }
                 }
             }
         }
diff --git a/sd/source/core/stlsheet.cxx b/sd/source/core/stlsheet.cxx
index 86d9ba3..4ed6289 100644
--- a/sd/source/core/stlsheet.cxx
+++ b/sd/source/core/stlsheet.cxx
@@ -345,13 +345,14 @@ bool SdStyleSheet::IsUsed() const
         OInterfaceContainerHelper * pContainer = mrBHelper.getContainer( cppu::UnoType<XModifyListener>::get() );
         if( pContainer )
         {
-            for( auto & x : pContainer->getElements() )
+            Sequence< Reference< XInterface > > aModifyListeners( pContainer->getElements() );
+            Reference< XInterface > *p = aModifyListeners.getArray();
+            sal_Int32 nCount = aModifyListeners.getLength();
+            while( nCount-- && !bResult )
             {
-                Reference< XStyle > xStyle( x, UNO_QUERY );
-                if( xStyle.is() ) {
+                Reference< XStyle > xStyle( *p++, UNO_QUERY );
+                if( xStyle.is() )
                     bResult = xStyle->isInUse();
-                    break;
-                }
             }
         }
     }
diff --git a/sfx2/source/doc/SfxDocumentMetaData.cxx b/sfx2/source/doc/SfxDocumentMetaData.cxx
index a8b567f..54b4a90 100644
--- a/sfx2/source/doc/SfxDocumentMetaData.cxx
+++ b/sfx2/source/doc/SfxDocumentMetaData.cxx
@@ -2282,11 +2282,11 @@ void SfxDocumentMetaData::createUserDefined()
             m_xUserDefined, css::uno::UNO_QUERY);
         if (xMB.is())
         {
-            const std::vector<css::uno::Reference<css::uno::XInterface> >
-                listeners(m_NotifyListeners.getElementsAsVector());
-            for (css::uno::Reference< css::uno::XInterface > const & iter : listeners) {
+            const css::uno::Sequence<css::uno::Reference<css::uno::XInterface> >
+                listeners(m_NotifyListeners.getElements());
+            for (css::uno::Reference< css::uno::XInterface > const * iter = listeners.begin(); iter != listeners.end(); ++iter) {
                 xMB->addModifyListener(
-                    css::uno::Reference< css::util::XModifyListener >(iter,
+                    css::uno::Reference< css::util::XModifyListener >(*iter,
                         css::uno::UNO_QUERY));
             }
         }
diff --git a/svx/source/table/tabledesign.cxx b/svx/source/table/tabledesign.cxx
index 2f0dbc9..66c0544 100644
--- a/svx/source/table/tabledesign.cxx
+++ b/svx/source/table/tabledesign.cxx
@@ -235,10 +235,10 @@ sal_Bool SAL_CALL TableDesignStyle::isInUse() throw (RuntimeException, std::exce
     OInterfaceContainerHelper * pContainer = rBHelper.getContainer( cppu::UnoType<XModifyListener>::get() );
     if( pContainer )
     {
-        std::vector< Reference< XInterface > > aListener( pContainer->getElementsAsVector() );
+        Sequence< Reference< XInterface > > aListener( pContainer->getElements() );
         aGuard.clear();
 
-        sal_Int32 nIndex = aListener.size();
+        sal_Int32 nIndex = aListener.getLength();
         while( --nIndex >= 0 )
         {
             TableDesignUser* pUser = dynamic_cast< TableDesignUser* >( aListener[nIndex].get() );
diff --git a/svx/source/unodraw/unoshcol.cxx b/svx/source/unodraw/unoshcol.cxx
index 1a94ecf..20133ca 100644
--- a/svx/source/unodraw/unoshcol.cxx
+++ b/svx/source/unodraw/unoshcol.cxx
@@ -229,10 +229,10 @@ uno::Any SAL_CALL SvxShapeCollection::getByIndex( sal_Int32 Index )
     if( Index < 0 || Index >= getCount() )
         throw lang::IndexOutOfBoundsException();
 
-    std::vector< Reference< uno::XInterface> > xElements( maShapeContainer.getElementsAsVector() );
+    uno::Sequence< Reference< uno::XInterface> > xElements( maShapeContainer.getElements() );
 
 
-    return uno::makeAny( Reference< drawing::XShape>(static_cast< drawing::XShape* >( xElements[Index].get())) );
+    return uno::makeAny( Reference< drawing::XShape>(static_cast< drawing::XShape* >( xElements.getArray()[Index].get())) );
 }
 
 // XElementAccess
diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx
index ce25b2b..cf14157 100644
--- a/toolkit/source/awt/vclxtoolkit.cxx
+++ b/toolkit/source/awt/vclxtoolkit.cxx
@@ -1757,13 +1757,13 @@ void VCLXToolkit::callTopWindowListeners(
           = static_cast< ::VclWindowEvent const * >(pEvent)->GetWindow();
     if (pWindow->IsTopWindow())
     {
-        std::vector< css::uno::Reference< css::uno::XInterface > >
-              aListeners(m_aTopWindowListeners.getElementsAsVector());
-        if (!aListeners.empty())
+        css::uno::Sequence< css::uno::Reference< css::uno::XInterface > >
+              aListeners(m_aTopWindowListeners.getElements());
+        if (aListeners.hasElements())
         {
             css::lang::EventObject aAwtEvent(
                 static_cast< css::awt::XWindow * >(pWindow->GetWindowPeer()));
-            for (::sal_Int32 i = 0; i < (sal_Int32)aListeners.size(); ++i)
+            for (::sal_Int32 i = 0; i < aListeners.getLength(); ++i)
             {
                 css::uno::Reference< css::awt::XTopWindowListener >
                       xListener(aListeners[i], css::uno::UNO_QUERY);
@@ -1786,10 +1786,10 @@ void VCLXToolkit::callTopWindowListeners(
 long VCLXToolkit::callKeyHandlers(::VclSimpleEvent const * pEvent,
                                   bool bPressed)
 {
-    std::vector< css::uno::Reference< css::uno::XInterface > >
-          aHandlers(m_aKeyHandlers.getElementsAsVector());
+    css::uno::Sequence< css::uno::Reference< css::uno::XInterface > >
+          aHandlers(m_aKeyHandlers.getElements());
 
-    if (!aHandlers.empty())
+    if (aHandlers.hasElements())
     {
         vcl::Window * pWindow = static_cast< ::VclWindowEvent const * >(pEvent)->GetWindow();
 
@@ -1809,7 +1809,7 @@ long VCLXToolkit::callKeyHandlers(::VclSimpleEvent const * pEvent,
             pKeyEvent->GetKeyCode().GetCode(), pKeyEvent->GetCharCode(),
             sal::static_int_cast< sal_Int16 >(
                 pKeyEvent->GetKeyCode().GetFunction()));
-        for (::sal_Int32 i = 0; i < (sal_Int32)aHandlers.size(); ++i)
+        for (::sal_Int32 i = 0; i < aHandlers.getLength(); ++i)
         {
             css::uno::Reference< css::awt::XKeyHandler > xHandler(
                 aHandlers[i], css::uno::UNO_QUERY);
@@ -1838,9 +1838,9 @@ void VCLXToolkit::callFocusListeners(::VclSimpleEvent const * pEvent,
           = static_cast< ::VclWindowEvent const * >(pEvent)->GetWindow();
     if (pWindow->IsTopWindow())
     {
-        std::vector< css::uno::Reference< css::uno::XInterface > >
-              aListeners(m_aFocusListeners.getElementsAsVector());
-        if (!aListeners.empty())
+        css::uno::Sequence< css::uno::Reference< css::uno::XInterface > >
+              aListeners(m_aFocusListeners.getElements());
+        if (aListeners.hasElements())
         {
             // Ignore the interior of compound controls when determining the
             // window that gets the focus next (see implementation in
@@ -1859,7 +1859,7 @@ void VCLXToolkit::callFocusListeners(::VclSimpleEvent const * pEvent,
                 static_cast< css::awt::XWindow * >(pWindow->GetWindowPeer()),
                 static_cast<sal_Int16>(pWindow->GetGetFocusFlags()),
                 xNext, false);
-            for (size_t i = 0; i < aListeners.size(); ++i)
+            for (::sal_Int32 i = 0; i < aListeners.getLength(); ++i)
             {
                 css::uno::Reference< css::awt::XFocusListener > xListener(
                     aListeners[i], css::uno::UNO_QUERY);
diff --git a/toolkit/source/controls/controlmodelcontainerbase.cxx b/toolkit/source/controls/controlmodelcontainerbase.cxx
index b064aff..a7eff04 100644
--- a/toolkit/source/controls/controlmodelcontainerbase.cxx
+++ b/toolkit/source/controls/controlmodelcontainerbase.cxx
@@ -916,11 +916,13 @@ void ControlModelContainerBase::implNotifyTabModelChange( const OUString& _rAcce
     aEvent.Changes[ 0 ].Accessor <<= _rAccessor;
 
 
-    std::vector< Reference< XInterface > > aChangeListeners( maChangeListeners.getElementsAsVector() );
-    for ( Reference< XInterface > & rListener : aChangeListeners )
+    Sequence< Reference< XInterface > > aChangeListeners( maChangeListeners.getElements() );
+    const Reference< XInterface >* pListener = aChangeListeners.getConstArray();
+    const Reference< XInterface >* pListenerEnd = aChangeListeners.getConstArray() + aChangeListeners.getLength();
+    for ( ; pListener != pListenerEnd; ++pListener )
     {
-        if ( rListener.is() )
-            static_cast< XChangesListener* >( rListener.get() )->changesOccurred( aEvent );
+        if ( pListener->is() )
+            static_cast< XChangesListener* >( pListener->get() )->changesOccurred( aEvent );
     }
 }
 
diff --git a/ucb/source/ucp/file/filrset.cxx b/ucb/source/ucp/file/filrset.cxx
index 820fda5..e4d8159 100644
--- a/ucb/source/ucp/file/filrset.cxx
+++ b/ucb/source/ucp/file/filrset.cxx
@@ -162,11 +162,11 @@ XResultSet_impl::dispose()
 void XResultSet_impl::rowCountChanged()
 {
     sal_Int32 aOldValue,aNewValue;
-    std::vector< uno::Reference< uno::XInterface > > seq;
+    uno::Sequence< uno::Reference< uno::XInterface > > seq;
     {
         osl::MutexGuard aGuard( m_aMutex );
         if( m_pRowCountListeners )
-            seq = m_pRowCountListeners->getElementsAsVector();
+            seq = m_pRowCountListeners->getElements();
         aNewValue = m_aItems.size();
         aOldValue = aNewValue-1;
     }
@@ -176,7 +176,7 @@ void XResultSet_impl::rowCountChanged()
     aEv.PropertyHandle = -1;
     aEv.OldValue <<= aOldValue;
     aEv.NewValue <<= aNewValue;
-    for( sal_Int32 i = 0; i < (sal_Int32)seq.size(); ++i )
+    for( sal_Int32 i = 0; i < seq.getLength(); ++i )
     {
         uno::Reference< beans::XPropertyChangeListener > listener(
             seq[i], uno::UNO_QUERY );
@@ -188,11 +188,11 @@ void XResultSet_impl::rowCountChanged()
 
 void XResultSet_impl::isFinalChanged()
 {
-    std::vector< uno::Reference< XInterface > > seq;
+    uno::Sequence< uno::Reference< XInterface > > seq;
     {
         osl::MutexGuard aGuard( m_aMutex );
         if( m_pIsFinalListeners )
-            seq = m_pIsFinalListeners->getElementsAsVector();
+            seq = m_pIsFinalListeners->getElements();
         m_bRowCountFinal = true;
     }
     beans::PropertyChangeEvent aEv;
@@ -203,7 +203,7 @@ void XResultSet_impl::isFinalChanged()
     bool tval = true;
     aEv.OldValue <<= fval;
     aEv.NewValue <<= tval;
-    for( sal_Int32 i = 0; i < (sal_Int32)seq.size(); ++i )
+    for( sal_Int32 i = 0; i < seq.getLength(); ++i )
     {
         uno::Reference< beans::XPropertyChangeListener > listener(
             seq[i], uno::UNO_QUERY );
commit 39fd37f39db37a83c4a1491d68518e721b04fc5f
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Jun 26 14:51:56 2015 +0200

    remove custom RTTI from SvxAutoCorrect
    
    unused
    
    Change-Id: I2f4504fdbe88fa83abe6da8a1f733f9ae1c2742d

diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx
index 3095aff..426c436 100644
--- a/editeng/source/misc/svxacorr.cxx
+++ b/editeng/source/misc/svxacorr.cxx
@@ -95,8 +95,6 @@ static const sal_Char sImplWordChars[] = "-'";
 
 OUString EncryptBlockName_Imp(const OUString& rName);
 
-TYPEINIT0(SvxAutoCorrect)
-
 typedef SvxAutoCorrectLanguageLists* SvxAutoCorrectLanguageListsPtr;
 
 static inline bool IsWordDelim( const sal_Unicode c )
diff --git a/include/editeng/svxacorr.hxx b/include/editeng/svxacorr.hxx
index b2f2a04..7de2a0e 100644
--- a/include/editeng/svxacorr.hxx
+++ b/include/editeng/svxacorr.hxx
@@ -272,8 +272,6 @@ public:
 
     virtual void refreshBlockList( const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& rStg);
 
-    TYPEINFO();
-
     SvxAutoCorrect( const OUString& rShareAutocorrFile,
                     const OUString& rUserAutocorrFile );
     SvxAutoCorrect( const SvxAutoCorrect& );
diff --git a/sw/inc/swacorr.hxx b/sw/inc/swacorr.hxx
index ebcb304..f913d81 100644
--- a/sw/inc/swacorr.hxx
+++ b/sw/inc/swacorr.hxx
@@ -46,8 +46,6 @@ protected:
                               const OUString& rFileName, const OUString& rShort, SfxObjectShell&, OUString& ) SAL_OVERRIDE;
 
 public:
-    TYPEINFO_OVERRIDE();
-
     SwAutoCorrect( const SvxAutoCorrect& rACorr );
     virtual ~SwAutoCorrect();
 };
diff --git a/sw/source/core/sw3io/swacorr.cxx b/sw/source/core/sw3io/swacorr.cxx
index 1a236fa..ed70466 100644
--- a/sw/source/core/sw3io/swacorr.cxx
+++ b/sw/source/core/sw3io/swacorr.cxx
@@ -27,9 +27,6 @@
 
 using namespace ::com::sun::star;
 
-TYPEINIT1( SwAutoCorrect, SvxAutoCorrect );
-
-
 /**
  * Returns the replacement text
  *
commit 0f70a4f69c2e4aa9484294c3b1f6fc652757f79e
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Jun 26 14:19:46 2015 +0200

    remove custom RTTI from SfxFrame
    
    unused
    
    Change-Id: I009f43d192942c14d0ccbf56c78257570c65e41a

diff --git a/include/sfx2/frame.hxx b/include/sfx2/frame.hxx
index d9c3620..6c2512a 100644
--- a/include/sfx2/frame.hxx
+++ b/include/sfx2/frame.hxx
@@ -116,8 +116,6 @@ protected:
     SAL_DLLPRIVATE      SfxFrame( vcl::Window& i_rContainerWindow, bool bHidden );
 
 public:
-                        TYPEINFO();
-
     static SfxFrame*    Create( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame );
     static ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >
                         CreateBlankFrame();
diff --git a/sfx2/source/view/frame.cxx b/sfx2/source/view/frame.cxx
index a371774..8f2d624 100644
--- a/sfx2/source/view/frame.cxx
+++ b/sfx2/source/view/frame.cxx
@@ -75,7 +75,6 @@ using namespace ::com::sun::star::util;
 using namespace ::com::sun::star::frame;
 using namespace ::com::sun::star::container;
 
-TYPEINIT1(SfxFrame, SfxListener);
 TYPEINIT1_AUTOFACTORY(SfxFrameItem, SfxPoolItem);
 TYPEINIT1(SfxUsrAnyItem, SfxPoolItem);
 TYPEINIT1_AUTOFACTORY(SfxUnoFrameItem, SfxPoolItem);
commit 4e99430e63a940d600cad2aaf1f0e992034b66e2
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Jun 26 13:17:34 2015 +0200

    remove custom RTTI from SotFactory
    
    unused
    
    Change-Id: I22f55aa403cd97ce2c5bf6a521c14a693e4373a7

diff --git a/include/sot/factory.hxx b/include/sot/factory.hxx
index d5a4f2a..b5f5ff6 100644
--- a/include/sot/factory.hxx
+++ b/include/sot/factory.hxx
@@ -46,7 +46,6 @@ class SOT_DLLPUBLIC SotFactory : public SvGlobalName
 protected:
     virtual             ~SotFactory();
 public:
-                        TYPEINFO();
     static  void        IncSvObjectCount( SotObject * = NULL );
     static  void        DecSvObjectCount( SotObject * = NULL );
 
diff --git a/sot/source/base/factory.cxx b/sot/source/base/factory.cxx
index 7f13cf9..102e0fc 100644
--- a/sot/source/base/factory.cxx
+++ b/sot/source/base/factory.cxx
@@ -73,7 +73,6 @@ SotData_Impl * SOTDATA()
 |*
 |*    Beschreibung
 *************************************************************************/
-TYPEINIT0(SotFactory);
 
 SotFactory::SotFactory( const SvGlobalName & rName,
                         const OUString & rClassName,
diff --git a/sot/source/base/object.cxx b/sot/source/base/object.cxx
index ddce68b..b809642 100644
--- a/sot/source/base/object.cxx
+++ b/sot/source/base/object.cxx
@@ -24,14 +24,12 @@
 class SotObjectFactory : public SotFactory
 {
 public:
-         TYPEINFO_OVERRIDE();
         SotObjectFactory( const SvGlobalName & rName,
                           const OUString & rClassName,
                           CreateInstanceType pCreateFuncP )
             : SotFactory( rName, rClassName, pCreateFuncP )
         {}
 };
-TYPEINIT1(SotObjectFactory,SotFactory);
 
 
 SO2_IMPL_BASIC_CLASS_DLL(SotObject,SotObjectFactory,
diff --git a/sot/source/sdstor/storage.cxx b/sot/source/sdstor/storage.cxx
index 4421bcd..1a01a04 100644
--- a/sot/source/sdstor/storage.cxx
+++ b/sot/source/sdstor/storage.cxx
@@ -45,14 +45,12 @@ using namespace ::com::sun::star;
 class SotStorageStreamFactory : public SotFactory
 {
 public:
-         TYPEINFO_OVERRIDE();
         SotStorageStreamFactory( const SvGlobalName & rName,
                                  const OUString & rClassName,
                                  CreateInstanceType pCreateFuncP )
             : SotFactory( rName, rClassName, pCreateFuncP )
         {}
 };
-TYPEINIT1(SotStorageStreamFactory,SotFactory);
 
 
 SO2_IMPL_BASIC_CLASS1_DLL(SotStorageStream,SotStorageStreamFactory,SotObject,
@@ -279,14 +277,12 @@ bool SotStorageStream::SetProperty( const OUString& rName, const ::com::sun::sta
 class SotStorageFactory : public SotFactory
 {
 public:
-         TYPEINFO_OVERRIDE();
         SotStorageFactory( const SvGlobalName & rName,
                            const OUString & rClassName,
                            CreateInstanceType pCreateFuncP )
             : SotFactory( rName, rClassName, pCreateFuncP )
         {}
 };
-TYPEINIT1(SotStorageFactory,SotFactory);
 
 
 SO2_IMPL_BASIC_CLASS1_DLL(SotStorage,SotStorageFactory,SotObject,
commit b488c7eeac1a0deba393c3d7b68f3da5a89857de
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Jun 26 12:39:41 2015 +0200

    remove custom RTTI from ImageMap
    
    unused
    
    Change-Id: I74a26815a5e11fd68094e70adc5ffc3bd4c83d73

diff --git a/include/svtools/imap.hxx b/include/svtools/imap.hxx
index 8255cb7..4c8f231 100644
--- a/include/svtools/imap.hxx
+++ b/include/svtools/imap.hxx
@@ -65,8 +65,6 @@ protected:
 
 public:
 
-    TYPEINFO();
-
                         ImageMap() {};
                         ImageMap( const OUString& rName );
                         ImageMap( const ImageMap& rImageMap );
diff --git a/svtools/source/misc/imap2.cxx b/svtools/source/misc/imap2.cxx
index 0ac0804..b88cd65 100644
--- a/svtools/source/misc/imap2.cxx
+++ b/svtools/source/misc/imap2.cxx
@@ -37,8 +37,6 @@
 
 #define NOTEOL(c) ((c)!='\0')
 
-TYPEINIT0_AUTOFACTORY( ImageMap );
-
 void IMapObject::AppendCERNCoords(OStringBuffer& rBuf, const Point& rPoint100)
 {
     const Point aPixPt( Application::GetDefaultDevice()->LogicToPixel( rPoint100, MapMode( MAP_100TH_MM ) ) );
commit 24c7375c335c93251c53d9cfa76974d16f803097
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Jun 26 11:41:04 2015 +0200

    remove custom RTTI from SdrObjUserData
    
    nothing is using it
    
    Change-Id: I9f86b7766b40cc2c4b725795b138e008b915c4fb

diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx
index 505635a..3bc77df 100644
--- a/include/svx/svdobj.hxx
+++ b/include/svx/svdobj.hxx
@@ -195,8 +195,6 @@ private:
     bool operator!=(const SdrObjUserData& rData) const SAL_DELETED_FUNCTION;
 
 public:
-    TYPEINFO();
-
     SdrObjUserData(sal_uInt32 nInv, sal_uInt16 nId, sal_uInt16 nVer);
     SdrObjUserData(const SdrObjUserData& rData);
     virtual ~SdrObjUserData();
diff --git a/include/svx/svdotext.hxx b/include/svx/svdotext.hxx
index e8f17c6..1bbfb83 100644
--- a/include/svx/svdotext.hxx
+++ b/include/svx/svdotext.hxx
@@ -105,7 +105,6 @@ class ImpSdrObjTextLinkUserData : public SdrObjUserData
     rtl_TextEncoding            eCharSet;
 
 public:
-    TYPEINFO_OVERRIDE();
     ImpSdrObjTextLinkUserData(SdrTextObj* pObj1);
     virtual ~ImpSdrObjTextLinkUserData();
 
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index 55f661d..9bf94f7 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -162,8 +162,6 @@ SdrObjMacroHitRec::SdrObjMacroHitRec() :
 
 
 
-TYPEINIT0(SdrObjUserData);
-
 SdrObjUserData::SdrObjUserData(sal_uInt32 nInv, sal_uInt16 nId, sal_uInt16 nVer) :
     nInventor(nInv),
     nIdentifier(nId),
diff --git a/svx/source/svdraw/svdotxln.cxx b/svx/source/svdraw/svdotxln.cxx
index 350ffa4..a0d8910 100644
--- a/svx/source/svdraw/svdotxln.cxx
+++ b/svx/source/svdraw/svdotxln.cxx
@@ -100,8 +100,6 @@ void ImpSdrObjTextLink::Closed()
 }
 
 
-TYPEINIT1(ImpSdrObjTextLinkUserData,SdrObjUserData);
-
 ImpSdrObjTextLinkUserData::ImpSdrObjTextLinkUserData(SdrTextObj* pObj1):
     SdrObjUserData(SdrInventor,SDRUSERDATA_OBJTEXTLINK,0),
     pObj(pObj1),
commit 6a8b38e698ba26f5a9dc8c1bd6b305ff9b3366fb
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Jun 26 10:33:45 2015 +0200

    remove custom RTTI from XFillExchangeData
    
    nothing is using it
    
    Change-Id: Ie626fcb7f35d98294ec41620c679d46a34a77d90

diff --git a/include/svx/xexch.hxx b/include/svx/xexch.hxx
index cba949d..800348e 100644
--- a/include/svx/xexch.hxx
+++ b/include/svx/xexch.hxx
@@ -40,8 +40,6 @@ private:
     SfxItemPool*        pPool;
 
 public:
-                        TYPEINFO();
-
                         XFillExchangeData();
                         XFillExchangeData(const XFillAttrSetItem& rXFillAttrSetItem);
                         virtual ~XFillExchangeData();
diff --git a/svx/source/xoutdev/xexch.cxx b/svx/source/xoutdev/xexch.cxx
index f3eb2fa..3889775 100644
--- a/svx/source/xoutdev/xexch.cxx
+++ b/svx/source/xoutdev/xexch.cxx
@@ -29,8 +29,6 @@
 #include <boost/scoped_ptr.hpp>
 
 
-TYPEINIT0_AUTOFACTORY( XFillExchangeData );
-
 /// default CTOR, for Assign()
 XFillExchangeData::XFillExchangeData() :
     pXFillAttrSetItem( NULL ),
commit 329350919e7407bdc217c64a5d6a0486f2b41811
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Jun 26 09:39:48 2015 +0200

    remove custom RTTI from SvDataCopyStream
    
    nothing is using it, except perhaps for XFillExchangeData, which was
    using it incorrectly :-(
    
    Change-Id: Ib9246a20bc97ad91d3e3e97fa642217686fc8c46

diff --git a/include/sot/filelist.hxx b/include/sot/filelist.hxx
index 1734c12..7c77fe9 100644
--- a/include/sot/filelist.hxx
+++ b/include/sot/filelist.hxx
@@ -42,8 +42,6 @@ protected:
     void            ClearAll();
 
 public:
-
-    TYPEINFO_OVERRIDE();
     FileList() {};
     virtual ~FileList();
 
diff --git a/include/svtools/grfmgr.hxx b/include/svtools/grfmgr.hxx
index 089b69d..9b43de5 100644
--- a/include/svtools/grfmgr.hxx
+++ b/include/svtools/grfmgr.hxx
@@ -334,9 +334,6 @@ protected:
     virtual void            Assign( const SvDataCopyStream& ) SAL_OVERRIDE;
 
 public:
-
-                            TYPEINFO_OVERRIDE();
-
                             GraphicObject( const GraphicManager* pMgr = NULL );
                             GraphicObject( const Graphic& rGraphic, const GraphicManager* pMgr = NULL );
                             GraphicObject( const GraphicObject& rCacheObj, const GraphicManager* pMgr = NULL );
diff --git a/include/tools/stream.hxx b/include/tools/stream.hxx
index 75d7445c..544a5fe 100644
--- a/include/tools/stream.hxx
+++ b/include/tools/stream.hxx
@@ -756,7 +756,6 @@ class TOOLS_DLLPUBLIC SvDataCopyStream
 {
 public:
     // repeated execution of Load or Assign is allowed
-                    TYPEINFO();
     virtual         ~SvDataCopyStream(){}
     virtual void    Load( SvStream & ) = 0;
     virtual void    Save( SvStream & ) = 0;
diff --git a/include/vcl/graph.hxx b/include/vcl/graph.hxx
index 778c6719..3736298 100644
--- a/include/vcl/graph.hxx
+++ b/include/vcl/graph.hxx
@@ -89,9 +89,6 @@ public:
     SAL_DLLPRIVATE ImpGraphic*  ImplGetImpGraphic() const { return mpImpGraphic; }
 
 public:
-
-                        TYPEINFO_OVERRIDE();
-
                         Graphic();
                         Graphic( const Graphic& rGraphic );
                         Graphic( const Bitmap& rBmp );
diff --git a/sot/source/base/filelist.cxx b/sot/source/base/filelist.cxx
index 95fdf83..8d182c5 100644
--- a/sot/source/base/filelist.cxx
+++ b/sot/source/base/filelist.cxx
@@ -25,8 +25,6 @@
 #include <osl/diagnose.h>
 #include <osl/thread.h>
 
-TYPEINIT1_AUTOFACTORY( FileList, SvDataCopyStream );
-
 /*************************************************************************
 |*
 |*    FileList - Ctor/Dtor
diff --git a/svtools/source/graphic/grfmgr.cxx b/svtools/source/graphic/grfmgr.cxx
index 5dc7128..63e2af5 100644
--- a/svtools/source/graphic/grfmgr.cxx
+++ b/svtools/source/graphic/grfmgr.cxx
@@ -56,8 +56,6 @@ struct GrfSimpleCacheObj
                     maGraphic( rGraphic ), maAttr( rAttr ) {}
 };
 
-TYPEINIT1_AUTOFACTORY( GraphicObject, SvDataCopyStream );
-
 // unique increasing ID for being able to detect the GraphicObject with the
 // oldest last data changes
 static sal_uLong aIncrementingTimeOfLastDataChange = 1;
diff --git a/svx/source/xoutdev/xexch.cxx b/svx/source/xoutdev/xexch.cxx
index 5fae82c..f3eb2fa 100644
--- a/svx/source/xoutdev/xexch.cxx
+++ b/svx/source/xoutdev/xexch.cxx
@@ -29,7 +29,7 @@
 #include <boost/scoped_ptr.hpp>
 
 
-TYPEINIT1_AUTOFACTORY( XFillExchangeData, SvDataCopyStream );
+TYPEINIT0_AUTOFACTORY( XFillExchangeData );
 
 /// default CTOR, for Assign()
 XFillExchangeData::XFillExchangeData() :
diff --git a/tools/source/stream/stream.cxx b/tools/source/stream/stream.cxx
index 529f7e2..39b3d08 100644
--- a/tools/source/stream/stream.cxx
+++ b/tools/source/stream/stream.cxx
@@ -2028,8 +2028,6 @@ bool SvScriptStream::good() const
     return mpHandle != NULL;
 }
 
-TYPEINIT0 ( SvDataCopyStream )
-
 void SvDataCopyStream::Assign( const SvDataCopyStream& )
 {
 }
diff --git a/vcl/source/gdi/graph.cxx b/vcl/source/gdi/graph.cxx
index 40bd87c..393a8d6 100644
--- a/vcl/source/gdi/graph.cxx
+++ b/vcl/source/gdi/graph.cxx
@@ -178,8 +178,6 @@ static void ImplDrawDefault( OutputDevice* pOutDev, const OUString* pText,
     pOutDev->Pop();
 }
 
-TYPEINIT1_AUTOFACTORY( Graphic, SvDataCopyStream );
-
 Graphic::Graphic()
 {
     mpImpGraphic = new ImpGraphic;


More information about the Libreoffice-commits mailing list