[Bug 54938] Adapt supportsService implementations to cppu::supportsService

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Feb 12 12:33:10 CET 2014


https://bugs.freedesktop.org/show_bug.cgi?id=54938

--- Comment #58 from Stephan Bergmann <sbergman at redhat.com> ---
(In reply to comment #56)
> I tried to convert dbaccess/source/inc/apitools.hxx, but I get this:
> 
> In member function ‘virtual sal_Bool dbaccess::OQuery::supportsService(const
> rtl::OUString&)’:
> ./dbaccess/source/inc/apitools.hxx:81:57: error:
> ‘com::sun::star::lang::XServiceInfo’ is an ambiguous base of
> ‘dbaccess::OQuery’
>          return cppu::supportsService(this, _rServiceName);
> 
> Do you have any idea? In this case supportsService is a macro.

Multiple inheritance of the same UNO interface does happen, and you then need
to help the compiler by static_casting this to one of the branches through
which it is inherited.  (Though multiple inheritance of XServiceInfo rather
smells like a design bug that should be cleaned up.)

Unwind the use of IMPLEMENT_SERVICE_INFO3 in
dbaccess/source/core/api/query.cxx, find out through which branches
XServiceInfo is inherited, and use a static_cast around the this pointer in the
implementation of OQuery::supportsService.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20140212/7a507fff/attachment.html>


More information about the LibreOffice mailing list