editeng/source/editeng/impedit.hxx | 1 + editeng/source/editeng/impedit2.cxx | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-)
New commits: commit fab2f546d1fb3ceaf5ee5d4d728f1728a8f1e7f3 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Thu Jan 26 22:45:48 2017 -0500 tdf#102688: prevent leaking of VirtualDevice instances. Change-Id: I6fb8e5b7fc5c0cef8f7ab1f93f5096ad588d57c7 Reviewed-on: https://gerrit.libreoffice.org/33601 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Kohei Yoshida <libreoff...@kohei.us> diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index 35121b5..ffcda87 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -420,6 +420,7 @@ private: VclPtr< VirtualDevice> pVirtDev; VclPtr< OutputDevice > pRefDev; + VclPtr<VirtualDevice> mpOwnDev; svtools::ColorConfig* pColorConfig; mutable SvtCTLOptions* pCTLOptions; diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 1c56dfb..5bbb325 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -176,6 +176,7 @@ ImpEditEngine::~ImpEditEngine() bDowning = true; SetUpdateMode( false ); + mpOwnDev.disposeAndClear(); pVirtDev.disposeAndClear(); delete pEmptyItemSet; delete pUndoManager; @@ -207,7 +208,8 @@ void ImpEditEngine::SetRefMapMode( const MapMode& rMapMode ) if ( GetRefDevice()->GetMapMode() == rMapMode ) return; - pRefDev = VclPtr<VirtualDevice>::Create(); + mpOwnDev = VclPtr<VirtualDevice>::Create(); + pRefDev = mpOwnDev; pRefDev->SetMapMode( MapUnit::MapTwip ); SetRefDevice( pRefDev ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits