On 02/02/2015 12:37 PM, Caolán McNamara wrote:
unusedcode.easy has an
OooEmbeddedObjectFactory::createInstanceLinkUserInit after the recent
devirtualization allowed callcatcher to determine that its unused. On
investigation the embeddedobj/source/commonembedding/xfactory.hxx used
to explicitly list implementing XLinkFactory until

251f1b0b38be7d1267339898e44e320f05849e22
Date:   Tue Jan 8 14:29:06 2013 +0200
     fdo#46808, Adapt embed::*EmbeddedObjectCreator UNO services to new
style

interface XEmbeddedObjectCreator
{
     interface XEmbedObjectCreator;
     interface XEmbedObjectFactory;
     interface XLinkCreator;
     [optional] interface XLinkFactory;
};

so I assume the problem here is the [optional] thing. What's the right
way to fix this within the new style uno foo ?

I guess it was a plain oversight in embeddedobj/source/commonembedding/xfactory.hxx to go from

class OOoEmbeddedObjectFactory : public ::cppu::WeakImplHelper5<
                                                
::com::sun::star::embed::XEmbedObjectCreator,
                                                
::com::sun::star::embed::XEmbedObjectFactory,
                                                
::com::sun::star::embed::XLinkCreator,
                                                
::com::sun::star::embed::XLinkFactory,
                                                
::com::sun::star::lang::XServiceInfo >

to

class OOoEmbeddedObjectFactory : public ::cppu::WeakImplHelper2<
                                                
::com::sun::star::embed::XEmbeddedObjectCreator,
                                                
::com::sun::star::lang::XServiceInfo >

instead of

class OOoEmbeddedObjectFactory : public ::cppu::WeakImplHelper3<
                                                
::com::sun::star::embed::XEmbeddedObjectCreator,
                                                
::com::sun::star::embed::XLinkFactory,
                                                
::com::sun::star::lang::XServiceInfo >

as optional UNOIDL superinterfaces are simply erased in the C++ language binding. Fixed now with <http://cgit.freedesktop.org/libreoffice/core/commit/?id=c33c309f13dee335d81eb0e00363d4ae2d7c911a> "OOoEmbeddedObjectFactory does implement optional XLinkFactory."
_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to