Blame SOURCES/0001-Resolves-rhbz-1454693-segv-on-interrupting-tiled-ren.patch

f325b2
From 23ee72212d5df5fd11a36b6b1b45b02ef23dcaf1 Mon Sep 17 00:00:00 2001
f325b2
From: rpmbuild <rpmbuild@fedoraproject.org>
f325b2
Date: Fri, 16 Jun 2017 15:53:41 +0100
f325b2
Subject: [PATCH] Resolves: rhbz#1454693 segv on interrupting tiled rendering
f325b2
f325b2
---
f325b2
 libreofficekit/source/gtk/lokdocview.cxx | 15 +++++++++++++++
f325b2
 1 file changed, 15 insertions(+)
f325b2
f325b2
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
f325b2
index b6f34ac..584ab57 100644
f325b2
--- a/libreofficekit/source/gtk/lokdocview.cxx
f325b2
+++ b/libreofficekit/source/gtk/lokdocview.cxx
f325b2
@@ -942,6 +942,14 @@ callback (gpointer pData)
f325b2
     LOKDocView* pDocView = LOK_DOC_VIEW (pCallback->m_pDocView);
f325b2
     LOKDocViewPrivate& priv = getPrivate(pDocView);
f325b2
 
f325b2
+    //callback registered before the widget was destroyed.
f325b2
+    //Use existance of lokThreadPool as flag it was torn down
f325b2
+    if (!priv->lokThreadPool)
f325b2
+    {
f325b2
+        delete pCallback;
f325b2
+        return G_SOURCE_REMOVE;
f325b2
+    }
f325b2
+
f325b2
     switch (pCallback->m_nType)
f325b2
     {
f325b2
     case LOK_CALLBACK_INVALIDATE_TILES:
f325b2
@@ -2061,11 +2069,18 @@ static void lok_doc_view_destroy (GtkWidget* widget)
f325b2
     LOKDocView* pDocView = LOK_DOC_VIEW (widget);
f325b2
     LOKDocViewPrivate& priv = getPrivate(pDocView);
f325b2
 
f325b2
+    if (priv->lokThreadPool)
f325b2
+    {
f325b2
+        g_thread_pool_free(priv->lokThreadPool, true, true);
f325b2
+        priv->lokThreadPool = nullptr;
f325b2
+    }
f325b2
+
f325b2
     if (priv->m_pDocument)
f325b2
     {
f325b2
         priv->m_pDocument->pClass->destroy (priv->m_pDocument);
f325b2
         priv->m_pDocument = nullptr;
f325b2
     }
f325b2
+
f325b2
     if (priv->m_pOffice)
f325b2
     {
f325b2
         priv->m_pOffice->pClass->destroy (priv->m_pOffice);
f325b2
-- 
f325b2
1.8.3.1
f325b2