Blame SOURCES/0384-lokdocview-Use-shared_ptr-to-fix-a-possible-memory-l.patch

f325b2
From 480d4e70b53487da92a4add51395b4068f2e73c0 Mon Sep 17 00:00:00 2001
f325b2
From: Pranav Kant <pranavk@libreoffice.org>
f325b2
Date: Sun, 10 Jan 2016 22:50:46 +0530
f325b2
Subject: [PATCH 384/398] lokdocview: Use shared_ptr to fix a possible memory
f325b2
 leak
f325b2
f325b2
Possible because boost::property_tree can throw an exception.
f325b2
f325b2
Change-Id: I68394ce3b30d448d40d8e22555bafdff1ffa6092
f325b2
Reviewed-on: https://gerrit.libreoffice.org/21309
f325b2
Reviewed-by: David Tardon <dtardon@redhat.com>
f325b2
Tested-by: David Tardon <dtardon@redhat.com>
f325b2
(cherry picked from commit 02b49890d51ec463d32846f1108344159664a9eb)
f325b2
Reviewed-on: https://gerrit.libreoffice.org/21345
f325b2
Tested-by: Jenkins <ci@libreoffice.org>
f325b2
Reviewed-by: Michael Stahl <mstahl@redhat.com>
f325b2
(cherry picked from commit 1673606de9a520e615e1a32da94f28d55ebaea20)
f325b2
---
f325b2
 libreofficekit/source/gtk/lokdocview.cxx | 12 ++++++------
f325b2
 1 file changed, 6 insertions(+), 6 deletions(-)
f325b2
f325b2
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
f325b2
index 5cf44e98c796..b6febbd9fe66 100644
f325b2
--- a/libreofficekit/source/gtk/lokdocview.cxx
f325b2
+++ b/libreofficekit/source/gtk/lokdocview.cxx
f325b2
@@ -10,6 +10,7 @@
f325b2
 #include <sal/types.h>
f325b2
 #include <math.h>
f325b2
 #include <string.h>
f325b2
+#include <memory>
f325b2
 #include <vector>
f325b2
 #include <string>
f325b2
 #include <iostream>
f325b2
@@ -344,13 +345,12 @@ doSearch(LOKDocView* pDocView, const char* pText, bool bBackwards, bool highligh
f325b2
     boost::property_tree::ptree aTree;
f325b2
     GtkWidget* drawingWidget = GTK_WIDGET(pDocView);
f325b2
     GdkWindow* drawingWindow = gtk_widget_get_window(drawingWidget);
f325b2
-    cairo_region_t* cairoVisRegion = gdk_window_get_visible_region(drawingWindow);
f325b2
+    std::shared_ptr<cairo_region_t> cairoVisRegion( gdk_window_get_visible_region(drawingWindow),
f325b2
+                                                    cairo_region_destroy);
f325b2
     cairo_rectangle_int_t cairoVisRect;
f325b2
-    int x, y;
f325b2
-
f325b2
-    cairo_region_get_rectangle(cairoVisRegion, 0, &cairoVisRect);
f325b2
-    x = pixelToTwip (cairoVisRect.x, priv->m_fZoom);
f325b2
-    y = pixelToTwip (cairoVisRect.y, priv->m_fZoom);
f325b2
+    cairo_region_get_rectangle(cairoVisRegion.get(), 0, &cairoVisRect);
f325b2
+    int x = pixelToTwip (cairoVisRect.x, priv->m_fZoom);
f325b2
+    int y = pixelToTwip (cairoVisRect.y, priv->m_fZoom);
f325b2
 
f325b2
     aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchString/type", '/'), "string");
f325b2
     aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchString/value", '/'), pText);
f325b2
-- 
f325b2
2.12.0
f325b2