[Libreoffice-commits] core.git: vcl/osx

Stephan Bergmann sbergman at redhat.com
Tue Mar 10 04:53:42 PDT 2015


 vcl/osx/salinst.cxx   |    7 +++++--
 vcl/osx/salnstimer.mm |    2 +-
 vcl/osx/saltimer.cxx  |    9 ++++++---
 3 files changed, 12 insertions(+), 6 deletions(-)

New commits:
commit bbd419d9bfa8fee66d3a9cfa8b592087e25da285
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Mar 10 12:52:36 2015 +0100

    Avoid calls on null mpSalTimer on OS X
    
    all three addressed places hit frequently now during "make check", likely
    related to recent changes to timer/idle code?
    
    Change-Id: I75963c707807c29db7865b11f9ed532b779765d8

diff --git a/vcl/osx/salinst.cxx b/vcl/osx/salinst.cxx
index b125230..105a9a9 100644
--- a/vcl/osx/salinst.cxx
+++ b/vcl/osx/salinst.cxx
@@ -646,8 +646,11 @@ void AquaSalInstance::Yield( bool bWait, bool bHandleAllCurrentEvents )
             {
                 // this cause crashes on MacOSX 10.4
                 // [AquaSalTimer::pRunningTimer fire];
-                bool idle = true; // TODO
-                ImplGetSVData()->mpSalTimer->CallCallback( idle );
+                if (ImplGetSVData()->mpSalTimer != nullptr)
+                {
+                    bool idle = true; // TODO
+                    ImplGetSVData()->mpSalTimer->CallCallback( idle );
+                }
             }
         }
 
diff --git a/vcl/osx/salnstimer.mm b/vcl/osx/salnstimer.mm
index fe0e907..49c7526 100644
--- a/vcl/osx/salnstimer.mm
+++ b/vcl/osx/salnstimer.mm
@@ -32,9 +32,9 @@
     ImplSVData* pSVData = ImplGetSVData();
     if( AquaSalTimer::bDispatchTimer )
     {
+        YIELD_GUARD;
         if( pSVData->mpSalTimer )
         {
-            YIELD_GUARD;
             bool idle = true; // TODO
             pSVData->mpSalTimer->CallCallback( idle );
             
diff --git a/vcl/osx/saltimer.cxx b/vcl/osx/saltimer.cxx
index 6c83af7..3770447 100644
--- a/vcl/osx/saltimer.cxx
+++ b/vcl/osx/saltimer.cxx
@@ -90,9 +90,12 @@ void AquaSalTimer::handleStartTimerEvent( NSEvent* pEvent )
         if( (posted - current) <= 0.0 )
         {
             YIELD_GUARD;
-            // timer already elapsed since event posted
-            bool idle = true; // TODO
-            pSVData->mpSalTimer->CallCallback( idle );
+            if( pSVData->mpSalTimer )
+            {
+                // timer already elapsed since event posted
+                bool idle = true; // TODO
+                pSVData->mpSalTimer->CallCallback( idle );
+            }
         }
         ImplSalStartTimer( sal_uLong( [pEvent data1] ) );
     }


More information about the Libreoffice-commits mailing list