Hi Dennis, On Wed, 2015-08-26 at 17:59 +0530, Dennis Francis wrote: > After entering ToolBarManager::RemoveControllers, I put a break point > on SvxFontNameBox_Impl::~SvxFontNameBox_Impl and then did > mpWindow.clear() in gdb (where mpWindow is the SvxFontNameBox_Impl > object wrapped in VclPtr).
Interesting. Is it possible that there should be a disposeAndClear there ? > But gdb did not show a call on the dtor ~SvxFontNameBox_Impl. After > further digging, I found that the mnRefCnt of the mpWindow in question > was 219 just before the VclPtr was reset. So - for a given un-disposed window - I'd expect lots of VclPtr references - but its unusual to have that many. > Now I wonder who else increased the ref count of this mpWindow object, > why the value is so high and how to proceed from here ? VCL itself maintains a whole slew of these - eg. the impl. of a window points to the next window, the previous window, top-levels are maintained in lists left & right etc. parents hold references to children and vv. (depends how many children it has). In order to (hopefully) break all these referencing cycles - it is necessary to call 'disposeOnce' or 'disposeAndClear' on the VclPtr - which stats the process of tidying up all the references. I miss the context but reading vcl/README.lifecycle would probably be helpful. HTH, Michael. -- michael.me...@collabora.com <><, Pseudo Engineer, itinerant idiot _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice