vcl/inc/window.h | 5 ++++- vcl/source/window/window.cxx | 15 +++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-)
New commits: commit 0223eb2c6498a40a8d32575c9af189c570e490f6 Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Jun 30 14:56:29 2014 +0200 Once ~SystemWindow calls ~Window, this is no longer a SystemWindow ...and hopefully it is just as fine to start this safety check at the paren, anyway. Change-Id: Ie3d7a1e233b9e3076a6603f2c6312d57b42b0f77 diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index 7fb93e2..4770d1a 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -65,6 +65,7 @@ #include <com/sun/star/rendering/XSpriteCanvas.hpp> #include <comphelper/processfactory.hxx> +#include <cassert> #include <set> #include <typeinfo> @@ -327,13 +328,16 @@ Window::~Window() Application::Abort(OStringToOUString(aTempStr.makeStringAndClear(), RTL_TEXTENCODING_UTF8)); // abort in debug builds, this must be fixed! } - Window* pMyParent = this; + Window* pMyParent = GetParent(); SystemWindow* pMySysWin = NULL; while ( pMyParent ) { if ( pMyParent->IsSystemWindow() ) - pMySysWin = (SystemWindow*)pMyParent; + { + pMySysWin = dynamic_cast<SystemWindow *>(pMyParent); + assert(pMyParent != 0); + } pMyParent = pMyParent->GetParent(); } if ( pMySysWin && pMySysWin->ImplIsInTaskPaneList( this ) ) @@ -349,13 +353,16 @@ Window::~Window() if( mpWindowImpl->mbIsInTaskPaneList ) { - Window* pMyParent = this; + Window* pMyParent = GetParent(); SystemWindow* pMySysWin = NULL; while ( pMyParent ) { if ( pMyParent->IsSystemWindow() ) - pMySysWin = (SystemWindow*)pMyParent; + { + pMySysWin = dynamic_cast<SystemWindow *>(pMyParent); + assert(pMyParent != 0); + } pMyParent = pMyParent->GetParent(); } if ( pMySysWin && pMySysWin->ImplIsInTaskPaneList( this ) ) commit 5f50d9593d0754fc4c4c0655b14b27f5ad5635e4 Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Jun 30 14:54:57 2014 +0200 Mark WindowImpl as noncopyable Change-Id: I80f981216067a03578cfc812b006e6b68b77068e diff --git a/vcl/inc/window.h b/vcl/inc/window.h index d8c864b..ccecb3d 100644 --- a/vcl/inc/window.h +++ b/vcl/inc/window.h @@ -20,6 +20,9 @@ #ifndef INCLUDED_VCL_INC_WINDOW_H #define INCLUDED_VCL_INC_WINDOW_H +#include <sal/config.h> + +#include <boost/noncopyable.hpp> #include <com/sun/star/uno/Reference.hxx> #include <cppuhelper/weakref.hxx> #include <list> @@ -192,7 +195,7 @@ struct ImplAccessibleInfos enum AlwaysInputMode { AlwaysInputNone = 0, AlwaysInputEnabled = 1, AlwaysInputDisabled =2 }; -class WindowImpl +class WindowImpl: private boost::noncopyable { public: WindowImpl( WindowType ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits