sw/source/core/txtnode/fntcache.cxx |    2 ++
 sw/source/core/view/viewsh.cxx      |    2 ++
 vcl/unx/gtk/window/gtkframe.cxx     |   11 ++++++++++-
 3 files changed, 14 insertions(+), 1 deletion(-)

New commits:
commit 5ae8cb8fc0d7ae3c85ccf23ffb8e2a890728cb72
Author: Caolán McNamara <caol...@redhat.com>
Date:   Tue Mar 6 09:45:08 2012 +0000

    fdo#50676: silence SolarMutex not locked spew
    
    (cherry picked from commit f9a4af41ca574760dbd22c8207661fabb6823e3b)
    
    Change-Id: I1c2a24e9f8fbbea7227c3c8e3a567ae22e070578
    Signed-off-by: Bjoern Michaelsen <bjoern.michael...@canonical.com>
    Signed-off-by: Thorsten Behrens <tbehr...@suse.com>

diff --git a/sw/source/core/txtnode/fntcache.cxx 
b/sw/source/core/txtnode/fntcache.cxx
index 2ec7fb9..4ddeb3d 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -382,6 +382,8 @@ sal_uInt16 SwFntObj::GetFontLeading( const ViewShell *pSh, 
const OutputDevice& r
     {
         if ( USHRT_MAX == nGuessedLeading || USHRT_MAX == nExtLeading )
         {
+            SolarMutexGuard aGuard;
+
             const Font aOldFnt( rOut.GetFont() );
             ((OutputDevice&)rOut).SetFont( *pPrtFont );
             const FontMetric aMet( rOut.GetFontMetric() );
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index f0dd635..04717dd 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -253,6 +253,8 @@ void ViewShell::ImplEndAction( const sal_Bool bIdleEnd )
     {
         if ( !nLockPaint )
         {
+            SolarMutexGuard aGuard;
+
             sal_Bool bPaintsFromSystem = aInvalidRect.HasArea();
             GetWin()->Update();
             if ( aInvalidRect.HasArea() )
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index ded316f..29fc04b 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -3886,6 +3886,7 @@ void GtkSalFrame::IMHandler::signalIMCommit( 
GtkIMContext* CONTEXT_ARG, gchar* p
 {
     GtkSalFrame::IMHandler* pThis = (GtkSalFrame::IMHandler*)im_handler;
 
+    SolarMutexGuard aGuard;
     vcl::DeletionListener aDel( pThis->m_pFrame );
     // open a block that will end the GTK_YIELD_GRAB before calling preedit 
changed again
     {
@@ -4052,6 +4053,7 @@ void GtkSalFrame::IMHandler::signalIMPreeditChanged( 
GtkIMContext*, gpointer im_
 
     GTK_YIELD_GRAB();
 
+    SolarMutexGuard aGuard;
     vcl::DeletionListener aDel( pThis->m_pFrame );
 
     pThis->m_pFrame->CallCallback( SALEVENT_EXTTEXTINPUT, 
(void*)&pThis->m_aInputEvent);
@@ -4072,6 +4074,7 @@ void GtkSalFrame::IMHandler::signalIMPreeditEnd( 
GtkIMContext*, gpointer im_hand
 
     pThis->m_bPreeditJustChanged = true;
 
+    SolarMutexGuard aGuard;
     vcl::DeletionListener aDel( pThis->m_pFrame );
     pThis->doCallEndExtTextInput();
     if( ! aDel.isDeleted() )
commit 10a390d4676cb678c58b2d6f1db9db8a76041996
Author: Caolán McNamara <caol...@redhat.com>
Date:   Mon Mar 5 21:02:45 2012 +0000

    fdo#50676: Related: rhbz#799628 crash with chewing-IM with g3g
    
    (cherry picked from commit 7e3ebe35a6a1a69b3a36f7eb41e1ec5c5905f714)
    
    Change-Id: I30767fdf7eb6297d12f2b8fb76dab084bd160bed
    Signed-off-by: Bjoern Michaelsen <bjoern.michael...@canonical.com>
    Signed-off-by: Thorsten Behrens <tbehr...@suse.com>

diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index c5df600..ded316f 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -4035,8 +4035,14 @@ void GtkSalFrame::IMHandler::signalIMPreeditChanged( 
GtkIMContext*, gpointer im_
         g_slist_free (attr_list);
 
         // Set the sal attributes on our text
-        for (int i = start; i < end; i++)
+        for (int i = start; i < end; ++i)
+        {
+            SAL_WARN_IF(i >= static_cast<int>(pThis->m_aInputFlags.size()),
+                "vcl.gtk", "pango attrib out of range?");
+            if (i >= static_cast<int>(pThis->m_aInputFlags.size()))
+                continue;
             pThis->m_aInputFlags[i] |= sal_attr;
+        }
     } while (pango_attr_iterator_next (iter));
 
     pThis->m_aInputEvent.mpTextAttr         = &pThis->m_aInputFlags[0];
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to