[Libreoffice-commits] core.git: sc/source
Bjoern Michaelsen
bjoern.michaelsen at canonical.com
Tue Apr 12 10:35:21 UTC 2016
sc/source/ui/dbgui/csvcontrol.cxx | 1 +
1 file changed, 1 insertion(+)
New commits:
commit 941e891d16853e5eff3e40cf48cdafb3146b2750
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Tue Apr 12 12:20:07 2016 +0200
lp#1566050: prevent cyclic reference zombies
regression, likely from 2660d24a07866e083c5135ea263030f3e3a2e729:
1/ Since that change mxAccessible in ScCsvGrid holds a rtl::Reference on
a ScAccessibleCsvGrid
2/ Which in turn holds a VclPtr<> (aka a rtl::Reference with lipstick)
on the ScCsvControl
These are a circular references, making both of them live forever and
leak past the point where on LibreOffice close all of Vcl is long gone,
when these are dtored. Clearing mxAccessible on disposing should help.
Change-Id: Iebb2635ec4ea143e7f0dbfebad2e6141a68e72e8
Reviewed-on: https://gerrit.libreoffice.org/24020
Reviewed-by: Noel Grandin <noelgrandin at gmail.com>
Tested-by: Noel Grandin <noelgrandin at gmail.com>
diff --git a/sc/source/ui/dbgui/csvcontrol.cxx b/sc/source/ui/dbgui/csvcontrol.cxx
index 2c09f20..c7be42b 100644
--- a/sc/source/ui/dbgui/csvcontrol.cxx
+++ b/sc/source/ui/dbgui/csvcontrol.cxx
@@ -81,6 +81,7 @@ void ScCsvControl::dispose()
{
if( mxAccessible.is() )
mxAccessible->dispose();
+ mxAccessible = nullptr; // lp#1566050: prevent cyclic reference zombies
Control::dispose();
}
More information about the Libreoffice-commits
mailing list