cppu/source/typelib/typelib.cxx        |    4 +++-
 libreofficekit/source/gtk/lokdocview.c |   22 +++++++++++++++-------
 2 files changed, 18 insertions(+), 8 deletions(-)

New commits:
commit ab0b8a95ef9ede3d41289593b8fbf68800ff9278
Author: Michael Meeks <michael.me...@collabora.com>
Date:   Tue Jun 24 16:12:08 2014 +0100

    fix comment and tiny optimisation for shutdown.
    
    Change-Id: I94e0f55f7fc38529a9ab165786efaf7ac649a9d3

diff --git a/cppu/source/typelib/typelib.cxx b/cppu/source/typelib/typelib.cxx
index 583b737..8533578 100644
--- a/cppu/source/typelib/typelib.cxx
+++ b/cppu/source/typelib/typelib.cxx
@@ -270,7 +270,9 @@ TypeDescriptor_Init_Impl::~TypeDescriptor_Init_Impl()
     if( pWeakMap )
     {
         std::vector< typelib_TypeDescriptionReference * > ppTDR;
-        // save al weak references
+        ppTDR.reserve( pWeakMap->size() );
+
+        // save all weak references
         WeakMap_Impl::const_iterator aIt = pWeakMap->begin();
         while( aIt != pWeakMap->end() )
         {
commit 3c440aad56cdaf3e0c05af6c7967a3d15b183034
Author: Michael Meeks <michael.me...@collabora.com>
Date:   Thu Jun 26 11:14:50 2014 +0100

    LOK DocView: handle document load failure without crashing.
    
    Change-Id: Icd668b3a7ec3ac58322a6af3f1da6008837d0b6b

diff --git a/libreofficekit/source/gtk/lokdocview.c 
b/libreofficekit/source/gtk/lokdocview.c
index 49aaf2e..f813e68 100644
--- a/libreofficekit/source/gtk/lokdocview.c
+++ b/libreofficekit/source/gtk/lokdocview.c
@@ -22,8 +22,9 @@ static void lok_docview_init( LOKDocView* pDocView );
 void lcl_onDestroy( LOKDocView* pDocView, gpointer pData )
 {
     (void) pData;
-    pDocView->pDocument->pClass->destroy( pDocView->pDocument );
-    pDocView->pDocument = 0;
+    if ( pDocView->pDocument )
+        pDocView->pDocument->pClass->destroy( pDocView->pDocument );
+    pDocView->pDocument = NULL;
 }
 
 SAL_DLLPUBLIC_EXPORT guint lok_docview_get_type()
@@ -139,15 +140,22 @@ SAL_DLLPUBLIC_EXPORT gboolean lok_docview_open_document( 
LOKDocView* pDocView, c
     if ( pDocView->pDocument )
     {
         pDocView->pDocument->pClass->destroy( pDocView->pDocument );
-        pDocView->pDocument = 0;
+        pDocView->pDocument = NULL;
     }
 
     pDocView->pDocument = pDocView->pOffice->pClass->documentLoad( 
pDocView->pOffice,
-                                                           pPath );
-
-    renderDocument( pDocView );
+                                                                   pPath );
+    if ( !pDocView->pDocument )
+    {
+        // FIXME: should have a GError parameter and populate it.
+        char *pError = pDocView->pOffice->pClass->getError( pDocView->pOffice 
);
+        fprintf( stderr, "Error opening document '%s'\n", pError );
+        return FALSE;
+    }
+    else
+        renderDocument( pDocView );
 
-    return FALSE;
+    return TRUE;
 }
 
 SAL_DLLPUBLIC_EXPORT void lok_docview_set_zoom ( LOKDocView* pDocView, float 
fZoom )
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to