diff options
author | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2016-04-12 12:20:07 +0200 |
---|---|---|
committer | Björn Michaelsen <bjoern.michaelsen@canonical.com> | 2016-04-12 10:24:51 +0000 |
commit | 62fdce393276a8f5ad86a41dc49719c61581ce63 (patch) | |
tree | aeba4ded007c536fe1dfc5d5b03fdd30f50cde30 /sc/source/ui/dbgui | |
parent | b297456515ba198913e49121cfcbc1afc8d195a7 (diff) |
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/24021
Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
Tested-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
Diffstat (limited to 'sc/source/ui/dbgui')
-rw-r--r-- | sc/source/ui/dbgui/csvcontrol.cxx | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sc/source/ui/dbgui/csvcontrol.cxx b/sc/source/ui/dbgui/csvcontrol.cxx index 2fb10309f0d5..51ed04cb3f74 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(); } |