diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2020-04-26 22:07:21 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2020-04-27 07:19:30 +0200 |
commit | b512ce255f46d90e682634e4dd17e146af7f9080 (patch) | |
tree | da2ce68b775e0e45294920074a1ae8306dbac818 /sd/source | |
parent | 83cf08b1cb2d493a4c12f88eb6bf0daf25fe5beb (diff) |
Make upcasting css::uno::Reference ctor require complete types
The main reason for the "home-grown" UpCast introduced with
904b3d1fceee5827076758ed2a81f80cb73493ca "Up-cast conversion constructor for
css::uno::Reference" in 2013 was probably that we could not yet rely on C++11
std::is_base_of back then. A (welcome) side effect was that the derived class
could be incomplete.
However, specializations of UpCast relying on whether or not T2 is incomplete
are obviously an ODR violation if the type is incomplete in some TUs and
complete (and derived from T1) in others. And even if UpCast had internal
linkage, it would still be brittle that its behavior depends on the completeness
of T2 at the point of the template's instantiation, and not necessarily at the
point of use.
That means we should better base that ctor on std::is_base_of (which we can do
now since 39a1edd6fec902ef378acce8af42c4d7fba280d0 "Make css::uno::Reference
upcast ctor LIBO_INTERNAL_ONLY"), which causes a compilation error at least on
Clang and GCC if the completeness requirements are not met. This change fixes
all the cases where types need to be complete now, plus any resulting
loplugin:referencecasting warnings ("the source reference is already a subtype
of the destination reference").
Change-Id: Ieb9e3552e90adbf2c5a5af933dcb872e20661a2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92950
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'sd/source')
24 files changed, 30 insertions, 3 deletions
diff --git a/sd/source/core/drawdoc.cxx b/sd/source/core/drawdoc.cxx index 02c7b5667d8a..ab0b932c8df3 100644 --- a/sd/source/core/drawdoc.cxx +++ b/sd/source/core/drawdoc.cxx @@ -25,6 +25,7 @@ #include <com/sun/star/beans/XPropertyContainer.hpp> #include <com/sun/star/beans/PropertyAttribute.hpp> #include <com/sun/star/document/XDocumentProperties.hpp> +#include <com/sun/star/frame/XModel.hpp> #include <editeng/forbiddencharacterstable.hxx> #include <svl/srchitem.hxx> diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx index 246be042c7db..a6259824f49c 100644 --- a/sd/source/filter/eppt/eppt.cxx +++ b/sd/source/filter/eppt/eppt.cxx @@ -30,6 +30,7 @@ #include <com/sun/star/container/XIndexContainer.hpp> #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> #include <com/sun/star/drawing/FillStyle.hpp> +#include <com/sun/star/frame/XModel.hpp> #include <com/sun/star/office/XAnnotation.hpp> #include <com/sun/star/office/XAnnotationAccess.hpp> #include <com/sun/star/office/XAnnotationEnumeration.hpp> diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx index f3e7faf875f3..51403da517cd 100644 --- a/sd/source/filter/eppt/epptso.cxx +++ b/sd/source/filter/eppt/epptso.cxx @@ -38,6 +38,7 @@ #include <com/sun/star/awt/FontPitch.hpp> #include <com/sun/star/awt/Rectangle.hpp> #include <com/sun/star/awt/FontDescriptor.hpp> +#include <com/sun/star/frame/XModel.hpp> #include <com/sun/star/style/TabStop.hpp> #include <com/sun/star/drawing/CircleKind.hpp> #include <com/sun/star/drawing/FillStyle.hpp> diff --git a/sd/source/filter/eppt/pptexanimations.cxx b/sd/source/filter/eppt/pptexanimations.cxx index bfd0c35dd664..eaa346b809ed 100644 --- a/sd/source/filter/eppt/pptexanimations.cxx +++ b/sd/source/filter/eppt/pptexanimations.cxx @@ -41,6 +41,7 @@ #include <com/sun/star/animations/AnimationColorSpace.hpp> #include <com/sun/star/drawing/FillStyle.hpp> #include <com/sun/star/drawing/LineStyle.hpp> +#include <com/sun/star/drawing/XDrawPage.hpp> #include <com/sun/star/awt/FontWeight.hpp> #include <com/sun/star/awt/FontUnderline.hpp> #include <com/sun/star/awt/FontSlant.hpp> diff --git a/sd/source/filter/eppt/pptx-epptbase.cxx b/sd/source/filter/eppt/pptx-epptbase.cxx index 8fa6914709c1..acd5df022a4f 100644 --- a/sd/source/filter/eppt/pptx-epptbase.cxx +++ b/sd/source/filter/eppt/pptx-epptbase.cxx @@ -38,6 +38,7 @@ #include <com/sun/star/awt/FontPitch.hpp> #include <com/sun/star/container/XNamed.hpp> #include <com/sun/star/container/XNameAccess.hpp> +#include <com/sun/star/frame/XModel.hpp> #include <com/sun/star/presentation/XPresentationPage.hpp> #include <com/sun/star/text/XSimpleText.hpp> #include <com/sun/star/style/XStyle.hpp> diff --git a/sd/source/filter/html/htmlex.cxx b/sd/source/filter/html/htmlex.cxx index 41f455b221fe..13d54a55bb6c 100644 --- a/sd/source/filter/html/htmlex.cxx +++ b/sd/source/filter/html/htmlex.cxx @@ -20,6 +20,7 @@ #include "htmlex.hxx" #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> #include <com/sun/star/drawing/GraphicExportFilter.hpp> +#include <com/sun/star/frame/XModel.hpp> #include <com/sun/star/ucb/SimpleFileAccess.hpp> #include <sal/log.hxx> diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index abe8420b2a80..17946aed3fbf 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -83,7 +83,7 @@ #include <com/sun/star/document/XDocumentProperties.hpp> #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> #include <com/sun/star/drawing/LineStyle.hpp> - +#include <com/sun/star/frame/XModel.hpp> #include <comphelper/string.hxx> #include <oox/ole/olehelper.hxx> diff --git a/sd/source/filter/ppt/pptinanimations.cxx b/sd/source/filter/ppt/pptinanimations.cxx index 39994f41f7ca..be51eb9003e4 100644 --- a/sd/source/filter/ppt/pptinanimations.cxx +++ b/sd/source/filter/ppt/pptinanimations.cxx @@ -47,6 +47,7 @@ #include <com/sun/star/presentation/EffectCommands.hpp> #include <com/sun/star/beans/NamedValue.hpp> #include <com/sun/star/container/XEnumerationAccess.hpp> +#include <com/sun/star/drawing/XDrawPage.hpp> #include <com/sun/star/presentation/ParagraphTarget.hpp> #include <com/sun/star/presentation/TextAnimationType.hpp> #include <comphelper/processfactory.hxx> diff --git a/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx b/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx index af0204877141..2f97fcafc696 100644 --- a/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx +++ b/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx @@ -26,6 +26,8 @@ #include <com/sun/star/accessibility/AccessibleEventId.hpp> #include <com/sun/star/accessibility/AccessibleStateType.hpp> #include <com/sun/star/accessibility/AccessibleRole.hpp> +#include <com/sun/star/frame/XController.hpp> +#include <com/sun/star/frame/XModel.hpp> #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/view/XSelectionSupplier.hpp> diff --git a/sd/source/ui/app/sdxfer.cxx b/sd/source/ui/app/sdxfer.cxx index f4806807a329..9ce97f817e73 100644 --- a/sd/source/ui/app/sdxfer.cxx +++ b/sd/source/ui/app/sdxfer.cxx @@ -17,6 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <sal/config.h> + +#include <com/sun/star/embed/XEmbeddedObject.hpp> #include <com/sun/star/embed/XTransactedObject.hpp> #include <com/sun/star/embed/XEmbedPersist.hpp> #include <com/sun/star/embed/ElementModes.hpp> diff --git a/sd/source/ui/dlg/filedlg.cxx b/sd/source/ui/dlg/filedlg.cxx index d45b4823cf9c..05c4243dc539 100644 --- a/sd/source/ui/dlg/filedlg.cxx +++ b/sd/source/ui/dlg/filedlg.cxx @@ -23,6 +23,7 @@ #include <com/sun/star/lang/IllegalArgumentException.hpp> #include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp> #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> +#include <com/sun/star/ui/dialogs/XFilePicker3.hpp> #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> #include <com/sun/star/ui/dialogs/FilePickerEvent.hpp> #include <vcl/idle.hxx> diff --git a/sd/source/ui/dlg/sdtreelb.cxx b/sd/source/ui/dlg/sdtreelb.cxx index 8b2ca9ea209e..485c0f48fa30 100644 --- a/sd/source/ui/dlg/sdtreelb.cxx +++ b/sd/source/ui/dlg/sdtreelb.cxx @@ -45,6 +45,7 @@ #include <ViewShellBase.hxx> #include <com/sun/star/embed/XEmbedPersist.hpp> +#include <com/sun/star/embed/XEmbeddedObject.hpp> #include <com/sun/star/frame/Desktop.hpp> #include <svtools/acceleratorexecute.hxx> #include <svtools/embedtransfer.hxx> diff --git a/sd/source/ui/framework/configuration/ConfigurationControllerBroadcaster.cxx b/sd/source/ui/framework/configuration/ConfigurationControllerBroadcaster.cxx index 882549fa059b..f9e491bf487e 100644 --- a/sd/source/ui/framework/configuration/ConfigurationControllerBroadcaster.cxx +++ b/sd/source/ui/framework/configuration/ConfigurationControllerBroadcaster.cxx @@ -19,6 +19,8 @@ #include "ConfigurationControllerBroadcaster.hxx" #include <com/sun/star/drawing/framework/XConfigurationChangeListener.hpp> +#include <com/sun/star/drawing/framework/XConfigurationController.hpp> +#include <com/sun/star/drawing/framework/XResource.hpp> #include <com/sun/star/lang/IllegalArgumentException.hpp> #include <com/sun/star/lang/DisposedException.hpp> #include <tools/diagnose_ex.h> diff --git a/sd/source/ui/framework/factories/Pane.cxx b/sd/source/ui/framework/factories/Pane.cxx index e11b78730f96..6ca637ea6694 100644 --- a/sd/source/ui/framework/factories/Pane.cxx +++ b/sd/source/ui/framework/factories/Pane.cxx @@ -23,6 +23,7 @@ #include <toolkit/helper/vclunohelper.hxx> #include <vcl/window.hxx> #include <cppcanvas/vclfactory.hxx> +#include <com/sun/star/rendering/XSpriteCanvas.hpp> #include <comphelper/servicehelper.hxx> using namespace ::com::sun::star; @@ -168,7 +169,7 @@ Reference<rendering::XCanvas> Pane::CreateCanvas() ::cppcanvas::SpriteCanvasSharedPtr pCanvas ( cppcanvas::VCLFactory::createSpriteCanvas(*mpWindow)); if (pCanvas.get() != nullptr) - xCanvas.set(pCanvas->getUNOSpriteCanvas(), UNO_QUERY); + xCanvas.set(pCanvas->getUNOSpriteCanvas()); } return xCanvas; diff --git a/sd/source/ui/framework/module/SlideSorterModule.cxx b/sd/source/ui/framework/module/SlideSorterModule.cxx index cefdc32a6251..2f5d55b7eb84 100644 --- a/sd/source/ui/framework/module/SlideSorterModule.cxx +++ b/sd/source/ui/framework/module/SlideSorterModule.cxx @@ -24,6 +24,7 @@ #include <com/sun/star/drawing/framework/XTabBar.hpp> #include <com/sun/star/drawing/framework/TabBarButton.hpp> #include <com/sun/star/drawing/framework/XControllerManager.hpp> +#include <com/sun/star/frame/XController.hpp> #include <strings.hrc> #include <sdresid.hxx> diff --git a/sd/source/ui/framework/module/ViewTabBarModule.cxx b/sd/source/ui/framework/module/ViewTabBarModule.cxx index 0828cf46f5c2..692a0ab5c349 100644 --- a/sd/source/ui/framework/module/ViewTabBarModule.cxx +++ b/sd/source/ui/framework/module/ViewTabBarModule.cxx @@ -22,6 +22,7 @@ #include <framework/FrameworkHelper.hxx> #include <com/sun/star/drawing/framework/XControllerManager.hpp> #include <com/sun/star/drawing/framework/XTabBar.hpp> +#include <com/sun/star/frame/XController.hpp> #include <strings.hrc> #include <sdresid.hxx> diff --git a/sd/source/ui/func/fuinsfil.cxx b/sd/source/ui/func/fuinsfil.cxx index 90051588f815..a916ab0dad28 100644 --- a/sd/source/ui/func/fuinsfil.cxx +++ b/sd/source/ui/func/fuinsfil.cxx @@ -40,6 +40,7 @@ #include <tools/debug.hxx> #include <com/sun/star/ui/dialogs/XFilterManager.hpp> #include <com/sun/star/ui/dialogs/XFilePicker.hpp> +#include <com/sun/star/ui/dialogs/XFilePicker3.hpp> #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> #include <sdresid.hxx> @@ -132,7 +133,7 @@ void FuInsertFile::DoExecute( SfxRequest& rReq ) sfx2::FileDialogHelper aFileDialog( ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, FileDialogFlags::Insert, mpWindow ? mpWindow->GetFrameWeld() : nullptr); - Reference< XFilePicker > xFilePicker( aFileDialog.GetFilePicker(), UNO_QUERY ); + Reference< XFilePicker > xFilePicker( aFileDialog.GetFilePicker() ); Reference< XFilterManager > xFilterManager( xFilePicker, UNO_QUERY ); OUString aOwnCont; OUString aOtherCont; diff --git a/sd/source/ui/func/futempl.cxx b/sd/source/ui/func/futempl.cxx index a1d376e13622..14f9e3c32955 100644 --- a/sd/source/ui/func/futempl.cxx +++ b/sd/source/ui/func/futempl.cxx @@ -20,6 +20,7 @@ #include <com/sun/star/style/XStyleFamiliesSupplier.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/container/XNameAccess.hpp> +#include <com/sun/star/frame/XModel.hpp> #include <futempl.hxx> diff --git a/sd/source/ui/presenter/PresenterHelper.cxx b/sd/source/ui/presenter/PresenterHelper.cxx index 84e7e047c6de..4fce3397eae0 100644 --- a/sd/source/ui/presenter/PresenterHelper.cxx +++ b/sd/source/ui/presenter/PresenterHelper.cxx @@ -24,6 +24,7 @@ #include "PresenterHelper.hxx" #include "PresenterCanvas.hxx" #include <cppcanvas/vclfactory.hxx> +#include <com/sun/star/awt/XWindowPeer.hpp> #include <com/sun/star/uno/XComponentContext.hpp> #include <toolkit/helper/vclunohelper.hxx> #include <vcl/window.hxx> diff --git a/sd/source/ui/slideshow/PaneHider.cxx b/sd/source/ui/slideshow/PaneHider.cxx index 079633271e89..882425f45d9a 100644 --- a/sd/source/ui/slideshow/PaneHider.cxx +++ b/sd/source/ui/slideshow/PaneHider.cxx @@ -27,6 +27,7 @@ #include <com/sun/star/drawing/framework/XControllerManager.hpp> #include <com/sun/star/drawing/framework/XConfigurationController.hpp> #include <com/sun/star/drawing/framework/XConfiguration.hpp> +#include <com/sun/star/frame/XController.hpp> #include <com/sun/star/lang/DisposedException.hpp> #include <tools/diagnose_ex.h> diff --git a/sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx b/sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx index a45ece0aee84..8ae3afdad243 100644 --- a/sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx +++ b/sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx @@ -31,6 +31,7 @@ #include <sdpage.hxx> #include <FrameView.hxx> #include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/frame/XController.hpp> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; diff --git a/sd/source/ui/unoidl/unodoc.cxx b/sd/source/ui/unoidl/unodoc.cxx index 813b291cc4db..bbc7fc1e6313 100644 --- a/sd/source/ui/unoidl/unodoc.cxx +++ b/sd/source/ui/unoidl/unodoc.cxx @@ -19,6 +19,7 @@ #include <rtl/ustring.hxx> #include <sfx2/sfxmodelfactory.hxx> +#include <com/sun/star/frame/XModel.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <sddll.hxx> diff --git a/sd/source/ui/view/PresentationViewShellBase.cxx b/sd/source/ui/view/PresentationViewShellBase.cxx index d37abee068a8..1d73a4bea974 100644 --- a/sd/source/ui/view/PresentationViewShellBase.cxx +++ b/sd/source/ui/view/PresentationViewShellBase.cxx @@ -26,6 +26,7 @@ #include <sfx2/viewfrm.hxx> #include <sfx2/viewsh.hxx> #include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/frame/XFrame.hpp> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; diff --git a/sd/source/ui/view/sdview2.cxx b/sd/source/ui/view/sdview2.cxx index a02e923200a5..62704f1b8fdc 100644 --- a/sd/source/ui/view/sdview2.cxx +++ b/sd/source/ui/view/sdview2.cxx @@ -21,6 +21,7 @@ #include <vector> #include <com/sun/star/embed/XEmbedPersist.hpp> +#include <com/sun/star/embed/XEmbeddedObject.hpp> #include <comphelper/sequenceashashmap.hxx> #include <tools/urlobj.hxx> #include <svx/svdoole2.hxx> |