Rebased ref, commits from common ancestor: commit 3622549f3cb30f2a63c6c5191e41832f60ab9dbb Author: Michael Meeks <michael.me...@collabora.com> Date: Tue Mar 24 17:52:38 2015 +0000
vcl: remove curious self referential OutputDevice ptr. No need to pay a per-instance cost for this, also avoid a self reference for every Window sub-class. Change-Id: I040a0ede9481229e43a39bc23297969e90b95f5e diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx index bf1d0c8..c5e004f 100644 --- a/include/vcl/window.hxx +++ b/include/vcl/window.hxx @@ -401,10 +401,6 @@ private: WindowImpl* mpWindowImpl; - // This is a first attempt to start to remove the dependency of Window on - // OutputDevice - VclPtr<::OutputDevice> mpOutputDevice; - #ifdef DBG_UTIL friend const char* ::ImplDbgCheckWindow( const void* pObj ); #endif @@ -681,8 +677,8 @@ public: Window( vcl::Window* pParent, const ResId& rResId ); virtual ~Window(); - ::OutputDevice const* GetOutDev() const { return mpOutputDevice; }; - ::OutputDevice* GetOutDev() { return mpOutputDevice; }; + ::OutputDevice const* GetOutDev() const; + ::OutputDevice* GetOutDev(); virtual void EnableRTL ( bool bEnable = true ) SAL_OVERRIDE; virtual void MouseMove( const MouseEvent& rMEvt ); diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index 510482f..c80e180 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -581,6 +581,22 @@ Window::~Window() disposeOnce(); } +// We will eventually being removing the inheritance of OutputDevice +// from Window. It will be replaced with a transient relationship such +// that the OutputDevice is only live for the scope of the Paint method. +// In the meantime this can help move us towards a Window use an +// OutputDevice, not being one. + +::OutputDevice const* Window::GetOutDev() const +{ + return this; +} + +::OutputDevice* Window::GetOutDev() +{ + return this; +} + } /* namespace vcl */ WindowImpl::WindowImpl( WindowType nType ) @@ -1195,11 +1211,6 @@ void Window::ImplInitAppFontData( vcl::Window* pWindow ) void Window::ImplInitWindowData( WindowType nType ) { - // We will eventually being removing the inheritance of OutputDevice from Window. - // It will be replaced with a composition relationship. A Window will use an OutputDevice, - // it will not *be* an OutputDevice - mpOutputDevice = (OutputDevice*)this; - mnRefCnt = 0; mpWindowImpl = new WindowImpl( nType ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits