SAL_NO_VTABLE in formula
Stephan Bergmann
sbergman at redhat.com
Fri May 23 05:25:18 PDT 2014
On 05/23/2014 01:47 PM, Markus Mohrhard wrote:
> On Fri, May 23, 2014 at 1:24 PM, Eike Rathke <erack at redhat.com
> <mailto:erack at redhat.com>> wrote:
> On Friday, 2014-05-23 03:14:30 +0200, Markus Mohrhard wrote:
>
> > so by going through Lsan reports I noted that we have a few
> classes in
> > formula that are marked with SAL_NO_VTABLE and therefore have no
> virtual
> > protected destructors, This prevents us from deleting some of these
> > instances and it looks like people just leaked them in the past.
>
> What actually leaks, given that these classes have no member variables
> and only define interfaces as pure abstract base classes one derives
> from?
>
>
> There is code in formula which generates objects from sc but can of
> course only use the abstract interfaces. Instead of deleting the objects
> we just leak them after use because the d'tor is protected.
If client code wants to polymorphically delete through
IFunctionDescription (which I understand it does), then
IFunctionDescription of course needs a public virtual dtor.
Whether or not to decorate IFunctionDescription with
__declspec(novtable) (AKA SAL_NO_VTABLE) on Windows should be an
orthogonal decision (at least, that's my---poor, as it is about Windows
after all---understanding of __declspec(novtable)).
Stephan
More information about the LibreOffice
mailing list