summaryrefslogtreecommitdiff
path: root/sdext
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-04-18 11:21:44 +0200
committerAshod Nakashian <ashod.nakashian@collabora.co.uk>2016-07-20 01:26:03 -0400
commit46429c9920650c722f541445f186a34a752388a1 (patch)
tree3bf9ba06cc47a45936c50eebbc035b1b03b2d50f /sdext
parentd4b38602c6ae1f0ae45d3f52e15795bfaabd523c (diff)
tdf#99352 - Some VclPtrs leak past DeInitVCL
Change-Id: I74b27b1d8b662a644df580ae128643b8495355f8 Reviewed-on: https://gerrit.libreoffice.org/24204 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com> (cherry picked from commit 67d333c608a662621c1069aacdec75e45e33a183)
Diffstat (limited to 'sdext')
-rw-r--r--sdext/source/pdfimport/wrapper/wrapper.cxx11
1 files changed, 6 insertions, 5 deletions
diff --git a/sdext/source/pdfimport/wrapper/wrapper.cxx b/sdext/source/pdfimport/wrapper/wrapper.cxx
index 74e17f87c118..7702b41775ee 100644
--- a/sdext/source/pdfimport/wrapper/wrapper.cxx
+++ b/sdext/source/pdfimport/wrapper/wrapper.cxx
@@ -59,6 +59,7 @@
#include <vcl/metric.hxx>
#include <vcl/font.hxx>
#include <vcl/virdev.hxx>
+#include <vcl/lazydelete.hxx>
#include <memory>
#include <unordered_map>
@@ -655,13 +656,13 @@ void Parser::readFont()
}
- static VclPtr<VirtualDevice> vDev;
- if (!vDev)
- vDev = VclPtr<VirtualDevice>::Create();
+ static vcl::DeleteOnDeinit< VclPtr<VirtualDevice> > vDev( new VclPtr<VirtualDevice> );
+ if (!vDev.get()->get())
+ (*vDev.get()) = VclPtr<VirtualDevice>::Create();
vcl::Font font(aResult.familyName, Size(0, 1000));
- vDev->SetFont(font);
- FontMetric metric(vDev->GetFontMetric());
+ (*vDev.get())->SetFont(font);
+ FontMetric metric((*vDev.get())->GetFontMetric());
aResult.ascent = metric.GetAscent() / 1000.0;
m_aFontMap[nFontID] = aResult;