toolkit/source/helper/unowrapper.cxx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
New commits: commit 883b7a34d288410ac6f820e91d9eaa65ba2b9cb1 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Thu May 13 18:12:22 2021 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu May 13 20:52:05 2021 +0200 DBG_ASSERT->assert in UnoWrapper Change-Id: Ibc6b489f12c2734869bd45f93f946a53e3015226 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115564 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/toolkit/source/helper/unowrapper.cxx b/toolkit/source/helper/unowrapper.cxx index d4f0b3501ca9..8474b45399c4 100644 --- a/toolkit/source/helper/unowrapper.cxx +++ b/toolkit/source/helper/unowrapper.cxx @@ -35,7 +35,7 @@ using namespace ::com::sun::star; -static css::uno::Reference< css::awt::XWindowPeer > CreateXWindow( vcl::Window const * pWindow ) +static rtl::Reference<VCLXWindow> CreateXWindow( vcl::Window const * pWindow ) { switch ( pWindow->GetType() ) { @@ -148,12 +148,13 @@ css::uno::Reference< css::awt::XToolkit> UnoWrapper::GetVCLToolkit() css::uno::Reference< css::awt::XWindowPeer> UnoWrapper::GetWindowInterface( vcl::Window* pWindow ) { css::uno::Reference< css::awt::XWindowPeer> xPeer = pWindow->GetWindowPeer(); - if ( !xPeer.is() ) - { - xPeer = CreateXWindow( pWindow ); - SetWindowInterface( pWindow, xPeer ); - } - return xPeer; + if ( xPeer ) + return xPeer; + + rtl::Reference<VCLXWindow> xVCLXWindow = CreateXWindow( pWindow ); + xVCLXWindow->SetWindow( pWindow ); + pWindow->SetWindowPeer( xVCLXWindow, xVCLXWindow.get() ); + return xVCLXWindow; } VclPtr<vcl::Window> UnoWrapper::GetWindow(const css::uno::Reference<css::awt::XWindow>& rWindow) @@ -165,7 +166,7 @@ void UnoWrapper::SetWindowInterface( vcl::Window* pWindow, const css::uno::Refer { VCLXWindow* pVCLXWindow = comphelper::getUnoTunnelImplementation<VCLXWindow>( xIFace ); - DBG_ASSERT( pVCLXWindow, "SetComponentInterface - unsupported type" ); + assert( pVCLXWindow && "must be a VCLXWindow subclass" ); if ( !pVCLXWindow ) return; @@ -173,7 +174,7 @@ void UnoWrapper::SetWindowInterface( vcl::Window* pWindow, const css::uno::Refer if( xPeer.is() ) { bool bSameInstance( pVCLXWindow == dynamic_cast< VCLXWindow* >( xPeer.get() )); - DBG_ASSERT( bSameInstance, "UnoWrapper::SetWindowInterface: there already *is* a WindowInterface for this window!" ); + assert( bSameInstance && "UnoWrapper::SetWindowInterface: there is already a WindowPeer/ComponentInterface for this VCL window" ); if ( bSameInstance ) return; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits