what's with the static uno::References in Foo_CreateInstance ?

Caolán McNamara caolanm at redhat.com
Mon Feb 16 07:29:48 PST 2015


Trying to track down a leak earlier I came across 
scaddins/source/analysis/analysis.cxx
which has...

uno::Reference< uno::XInterface > SAL_CALL AnalysisAddIn_CreateInstance(
        const uno::Reference< lang::XMultiServiceFactory >& xServiceFact
)
{
    static uno::Reference< uno::XInterface > xInst =
       (cppu::OWeakObject*) new AnalysisAddIn(...);
    return xInst;
}

now, the above is an argument to createOneInstanceFactory. So it's only
going to be called once anyway, right ? So if the intent is to ensure
it's a singleton then that's unnecessary.

Some grepping shows that this is a fairly common calc theme, but rare
elsewhere.

sc/source/ui/unoobj/afmtuno.cxx:    static uno::Reference...
sc/source/ui/unoobj/appluno.cxx:    static uno::Reference...
sc/source/ui/unoobj/appluno.cxx:    static uno::Reference...
sc/source/ui/unoobj/appluno.cxx:    static uno::Reference...
sc/source/ui/unoobj/funcuno.cxx:    static uno::Reference...
sc/workben/addin.cxx:    static uno::Reference...
scaddins/source/analysis/analysis.cxx:    static uno::Reference...
scaddins/source/datefunc/datefunc.cxx:    static uno::Reference...
scaddins/source/pricing/pricing.cxx:    static uno::Reference...
stoc/source/typeconv/convert.cxx:    static Reference...
sw/source/uibase/uno/unoatxt.cxx:    static uno::Reference...
sw/source/uibase/uno/unomod.cxx:    static Reference...

C.



More information about the LibreOffice mailing list