dbaccess/source/core/dataaccess/databasedocument.cxx | 1 + dbaccess/source/ui/app/AppDetailPageHelper.cxx | 4 ++-- dbaccess/source/ui/app/AppDetailPageHelper.hxx | 4 ++-- dbaccess/source/ui/browser/dataview.cxx | 13 ++++++------- include/dbaccess/dataview.hxx | 4 ++-- 5 files changed, 13 insertions(+), 13 deletions(-)
New commits: commit fe64e57f2d37d77811a3648ccf11b76eaa7e5f0e Author: Michael Meeks <[email protected]> Date: Fri Feb 27 10:09:37 2015 +0000 dbaccess: nail the last double-dispose issue breaking the test. Change-Id: I861c970db9c36c973bcb2fa94a3e8e12f8de4f13 diff --git a/dbaccess/source/core/dataaccess/databasedocument.cxx b/dbaccess/source/core/dataaccess/databasedocument.cxx index 4e8099d..7203779 100644 --- a/dbaccess/source/core/dataaccess/databasedocument.cxx +++ b/dbaccess/source/core/dataaccess/databasedocument.cxx @@ -1505,6 +1505,7 @@ void SAL_CALL ODatabaseDocument::close( sal_Bool _bDeliverOwnership ) throw (Clo // SYNCHRONIZED -> { DocumentGuard aGuard(*this, DocumentGuard::DefaultMethod); + assert (!m_bClosing); m_bClosing = true; } // <- SYNCHRONIZED diff --git a/dbaccess/source/ui/app/AppDetailPageHelper.cxx b/dbaccess/source/ui/app/AppDetailPageHelper.cxx index 5461767..1516bb4 100644 --- a/dbaccess/source/ui/app/AppDetailPageHelper.cxx +++ b/dbaccess/source/ui/app/AppDetailPageHelper.cxx @@ -193,7 +193,6 @@ OAppDetailPageHelper::OAppDetailPageHelper(vcl::Window* _pParent,OAppBorderWindo ,m_aBorder(new Window(this,WB_BORDER | WB_READONLY)) ,m_aPreview(new OPreviewWindow(m_aBorder.get())) ,m_aDocumentInfo(new ::svtools::ODocumentInfoPreview(m_aBorder.get(), WB_LEFT | WB_VSCROLL | WB_READONLY) ) - ,m_pTablePreview(NULL) ,m_ePreviewMode(_ePreviewMode) { @@ -212,7 +211,7 @@ OAppDetailPageHelper::OAppDetailPageHelper(vcl::Window* _pParent,OAppBorderWindo m_aPreview->SetHelpId(HID_APP_VIEW_PREVIEW_1); - m_pTablePreview = new OTablePreviewWindow(m_aBorder.get(), WB_READONLY | WB_DIALOGCONTROL ); + m_pTablePreview.set( new OTablePreviewWindow(m_aBorder.get(), WB_READONLY | WB_DIALOGCONTROL ) ); m_pTablePreview->SetHelpId(HID_APP_VIEW_PREVIEW_2); m_aDocumentInfo->SetHelpId(HID_APP_VIEW_PREVIEW_3); @@ -259,6 +258,7 @@ void OAppDetailPageHelper::dispose() m_aTBPreview.disposeAndClear(); m_aPreview.disposeAndClear(); m_aDocumentInfo.disposeAndClear(); + m_pTablePreview.disposeAndClear(); m_aBorder.disposeAndClear(); m_aMenu.reset(); diff --git a/dbaccess/source/ui/app/AppDetailPageHelper.hxx b/dbaccess/source/ui/app/AppDetailPageHelper.hxx index ef9899f..9e8d5e9 100644 --- a/dbaccess/source/ui/app/AppDetailPageHelper.hxx +++ b/dbaccess/source/ui/app/AppDetailPageHelper.hxx @@ -84,8 +84,8 @@ namespace dbaui VclPtr<Window> m_aBorder; VclPtr<OPreviewWindow> m_aPreview; VclPtr<::svtools::ODocumentInfoPreview> - m_aDocumentInfo; - vcl::Window* m_pTablePreview; + m_aDocumentInfo; + VclPtr<vcl::Window> m_pTablePreview; ::std::unique_ptr<PopupMenu> m_aMenu; PreviewMode m_ePreviewMode; ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 > diff --git a/dbaccess/source/ui/browser/dataview.cxx b/dbaccess/source/ui/browser/dataview.cxx index 3f15879..e023e5b 100644 --- a/dbaccess/source/ui/browser/dataview.cxx +++ b/dbaccess/source/ui/browser/dataview.cxx @@ -65,10 +65,9 @@ namespace dbaui WinBits nStyle) :Window(pParent,nStyle) ,m_xContext(_rxContext) - ,m_rController( _rController ) + ,m_xController( &_rController ) ,m_aSeparator( new FixedLine(this) ) { - m_rController.acquire(); m_pAccel.reset(::svt::AcceleratorExecute::createAcceleratorHelper()); m_aSeparator->Show(); } @@ -84,7 +83,7 @@ namespace dbaui void ODataView::dispose() { - m_rController.release(); + m_xController.clear(); m_aSeparator.disposeAndClear(); m_pAccel.reset(); vcl::Window::dispose(); @@ -141,7 +140,7 @@ namespace dbaui case MouseNotifyEvent::KEYUP: case MouseNotifyEvent::MOUSEBUTTONDOWN: case MouseNotifyEvent::MOUSEBUTTONUP: - bHandled = m_rController.interceptUserInput( _rNEvt ); + bHandled = m_xController->interceptUserInput( _rNEvt ); break; default: break; @@ -155,7 +154,7 @@ namespace dbaui if ( nType == StateChangedType::CONTROLBACKGROUND ) { // Check if we need to get new images for normal/high contrast mode - m_rController.notifyHiContrastChanged(); + m_xController->notifyHiContrastChanged(); } if ( nType == StateChangedType::INITSHOW ) @@ -164,7 +163,7 @@ namespace dbaui // model's arguments. try { - Reference< XController > xController( m_rController.getXController(), UNO_SET_THROW ); + Reference< XController > xController( m_xController->getXController(), UNO_SET_THROW ); Reference< XModel > xModel( xController->getModel(), UNO_QUERY ); if ( xModel.is() ) { @@ -190,7 +189,7 @@ namespace dbaui (rDCEvt.GetFlags() & SETTINGS_STYLE)) ) { // Check if we need to get new images for normal/high contrast mode - m_rController.notifyHiContrastChanged(); + m_xController->notifyHiContrastChanged(); } } void ODataView::attachFrame(const Reference< XFrame >& _xFrame) diff --git a/include/dbaccess/dataview.hxx b/include/dbaccess/dataview.hxx index e0652b9..104e80b 100644 --- a/include/dbaccess/dataview.hxx +++ b/include/dbaccess/dataview.hxx @@ -37,7 +37,7 @@ namespace dbaui ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext; // the service factory to work with protected: - IController& m_rController; // the controller in where we resides in + rtl::Reference<IController> m_xController; // the controller in where we resides in VclPtr<FixedLine> m_aSeparator; ::std::unique_ptr< ::svt::AcceleratorExecute> m_pAccel; @@ -58,7 +58,7 @@ namespace dbaui virtual void StateChanged( StateChangedType nStateChange ) SAL_OVERRIDE; virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE; - inline IController& getCommandController() const { return m_rController; } + inline IController& getCommandController() const { return *m_xController.get(); } /** will be called when the controls need to be resized. */ _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
