chart2/Library_chartcore.mk | 1 chart2/inc/ChartView.hxx | 2 chart2/source/view/inc/GL3DBarChart.hxx | 10 +-- chart2/source/view/inc/GL3DPlotterBase.hxx | 28 ++++++++ chart2/source/view/main/ChartView.cxx | 91 ++++++++++++++-------------- chart2/source/view/main/GL3DPlotterBase.cxx | 18 +++++ include/o3tl/deleter.hxx | 34 ++++++++++ sc/inc/stlalgorithm.hxx | 13 ---- sc/source/core/data/column.cxx | 3 sc/source/core/data/columnspanset.cxx | 4 - sc/source/core/data/document.cxx | 4 - sc/source/core/data/dptabres.cxx | 6 - sc/source/core/data/table3.cxx | 4 - sc/source/core/tool/chartlis.cxx | 7 +- sc/source/core/tool/rangelst.cxx | 6 - sc/source/filter/xcl97/xcl97rec.cxx | 4 - sc/source/ui/unoobj/chart2uno.cxx | 4 - sc/source/ui/view/viewdata.cxx | 4 - 18 files changed, 162 insertions(+), 81 deletions(-)
New commits: commit ef69c15bb98683ca6a70ad2f0b92fec54f7a23e0 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Mon May 12 13:44:20 2014 -0400 Have ChartView keep the instance of GL3D chart object between rendering. Change-Id: I49419d20bf283fba1c31d8516972b0ca7fddcb5b diff --git a/chart2/Library_chartcore.mk b/chart2/Library_chartcore.mk index e4e1fee..97245ca 100644 --- a/chart2/Library_chartcore.mk +++ b/chart2/Library_chartcore.mk @@ -103,6 +103,7 @@ $(eval $(call gb_Library_add_exception_objects,chartcore,\ chart2/source/view/main/Clipping \ chart2/source/view/main/DataPointSymbolSupplier \ chart2/source/view/main/DrawModelWrapper \ + chart2/source/view/main/GL3DPlotterBase \ chart2/source/view/main/GL3DRenderer \ chart2/source/view/main/LabelPositionHelper \ chart2/source/view/main/Linear3DTransformation \ diff --git a/chart2/inc/ChartView.hxx b/chart2/inc/ChartView.hxx index 0ba3bf8..69f1eed 100644 --- a/chart2/inc/ChartView.hxx +++ b/chart2/inc/ChartView.hxx @@ -54,6 +54,7 @@ class VCoordinateSystem; class DrawModelWrapper; class SeriesPlotterContainer; class VDataSeries; +class GL3DPlotterBase; enum TimeBasedMode { @@ -271,6 +272,7 @@ private: //member ::com::sun::star::awt::Rectangle m_aResultingDiagramRectangleExcludingAxes; + boost::shared_ptr<GL3DPlotterBase> m_pGL3DPlotter; TimeBasedInfo maTimeBased; osl::Mutex maTimeMutex; }; diff --git a/chart2/source/view/inc/GL3DBarChart.hxx b/chart2/source/view/inc/GL3DBarChart.hxx index 86115de..7a1733e 100644 --- a/chart2/source/view/inc/GL3DBarChart.hxx +++ b/chart2/source/view/inc/GL3DBarChart.hxx @@ -10,6 +10,8 @@ #ifndef CHART2_GL3DBARCHART_HXX #define CHART2_GL3DBARCHART_HXX +#include <GL3DPlotterBase.hxx> + #include <vector> #include <boost/ptr_container/ptr_vector.hpp> #include "VDataSeries.hxx" @@ -27,7 +29,7 @@ class OpenGL3DRenderer; } -class GL3DBarChart +class GL3DBarChart : public GL3DPlotterBase { public: GL3DBarChart( @@ -35,11 +37,11 @@ public: const boost::ptr_vector<VDataSeries>& rDataSeries, OpenGLWindow& rContext, ExplicitCategoriesProvider& rCatProvider ); - ~GL3DBarChart(); + virtual ~GL3DBarChart(); - void create3DShapes(); + virtual void create3DShapes() SAL_OVERRIDE; - void render(); + virtual void render() SAL_OVERRIDE; private: css::uno::Reference<css::chart2::XChartType> mxChartType; diff --git a/chart2/source/view/inc/GL3DPlotterBase.hxx b/chart2/source/view/inc/GL3DPlotterBase.hxx new file mode 100644 index 0000000..9c89008 --- /dev/null +++ b/chart2/source/view/inc/GL3DPlotterBase.hxx @@ -0,0 +1,28 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef CHART2_GL3DPLOTTERBASE_HXX +#define CHART2_GL3DPLOTTERBASE_HXX + +namespace chart { + +class GL3DPlotterBase +{ +public: + virtual ~GL3DPlotterBase(); + + virtual void create3DShapes() = 0; + virtual void render() = 0; +}; + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx index 13f4bf7..49c3202 100644 --- a/chart2/source/view/main/ChartView.cxx +++ b/chart2/source/view/main/ChartView.cxx @@ -2461,11 +2461,12 @@ void ChartView::createShapes() } else { + m_pGL3DPlotter.reset(); + // hide OpenGL window for now in normal charts OpenGLWindow* pWindow = mrChartModel.getOpenGLWindow(); if(pWindow) pWindow->Show(false); - } #endif @@ -3114,61 +3115,65 @@ IMPL_LINK_NOARG(ChartView, UpdateTimeBased) void ChartView::createShapes3D() { - uno::Reference< XDiagram > xDiagram( mrChartModel.getFirstDiagram() ); - uno::Reference< XCoordinateSystemContainer > xCooSysContainer( xDiagram, uno::UNO_QUERY ); - if( !xCooSysContainer.is()) - return; + if (!m_pGL3DPlotter) + { + uno::Reference< XDiagram > xDiagram( mrChartModel.getFirstDiagram() ); + uno::Reference< XCoordinateSystemContainer > xCooSysContainer( xDiagram, uno::UNO_QUERY ); + if( !xCooSysContainer.is()) + return; - uno::Sequence< uno::Reference< XCoordinateSystem > > aCooSysList( xCooSysContainer->getCoordinateSystems() ); - boost::ptr_vector<VDataSeries> aDataSeries; + uno::Sequence< uno::Reference< XCoordinateSystem > > aCooSysList( xCooSysContainer->getCoordinateSystems() ); + boost::ptr_vector<VDataSeries> aDataSeries; - if (aCooSysList.getLength() != 1) - // Supporting multiple coordinates in a truly 3D chart (which implies - // it's a Cartesian coordinate system) is a bit of a challenge, if not - // impossible. - return; + if (aCooSysList.getLength() != 1) + // Supporting multiple coordinates in a truly 3D chart (which implies + // it's a Cartesian coordinate system) is a bit of a challenge, if not + // impossible. + return; - uno::Reference<XCoordinateSystem> xCooSys( aCooSysList[0] ); + uno::Reference<XCoordinateSystem> xCooSys( aCooSysList[0] ); - //iterate through all chart types in the current coordinate system - uno::Reference< XChartTypeContainer > xChartTypeContainer( xCooSys, uno::UNO_QUERY ); - OSL_ASSERT( xChartTypeContainer.is()); - if( !xChartTypeContainer.is() ) - return; + //iterate through all chart types in the current coordinate system + uno::Reference< XChartTypeContainer > xChartTypeContainer( xCooSys, uno::UNO_QUERY ); + OSL_ASSERT( xChartTypeContainer.is()); + if( !xChartTypeContainer.is() ) + return; - uno::Sequence< uno::Reference< XChartType > > aChartTypeList( xChartTypeContainer->getChartTypes() ); - if (aChartTypeList.getLength() != 1) - // Likewise, we can't really support multiple chart types here. - return; + uno::Sequence< uno::Reference< XChartType > > aChartTypeList( xChartTypeContainer->getChartTypes() ); + if (aChartTypeList.getLength() != 1) + // Likewise, we can't really support multiple chart types here. + return; - uno::Reference< XChartType > xChartType( aChartTypeList[0] ); + uno::Reference< XChartType > xChartType( aChartTypeList[0] ); - uno::Reference< XDataSeriesContainer > xDataSeriesContainer( xChartType, uno::UNO_QUERY ); - OSL_ASSERT( xDataSeriesContainer.is()); - if( !xDataSeriesContainer.is() ) - return; + uno::Reference< XDataSeriesContainer > xDataSeriesContainer( xChartType, uno::UNO_QUERY ); + OSL_ASSERT( xDataSeriesContainer.is()); + if( !xDataSeriesContainer.is() ) + return; - uno::Sequence< uno::Reference< XDataSeries > > aSeriesList( xDataSeriesContainer->getDataSeries() ); - for( sal_Int32 nS = 0; nS < aSeriesList.getLength(); ++nS ) - { - uno::Reference< XDataSeries > xDataSeries( aSeriesList[nS], uno::UNO_QUERY ); - if(!xDataSeries.is()) - continue; + uno::Sequence< uno::Reference< XDataSeries > > aSeriesList( xDataSeriesContainer->getDataSeries() ); + for( sal_Int32 nS = 0; nS < aSeriesList.getLength(); ++nS ) + { + uno::Reference< XDataSeries > xDataSeries( aSeriesList[nS], uno::UNO_QUERY ); + if(!xDataSeries.is()) + continue; - aDataSeries.push_back(new VDataSeries(xDataSeries)); - } + aDataSeries.push_back(new VDataSeries(xDataSeries)); + } - OpenGLWindow* pWindow = mrChartModel.getOpenGLWindow(); - if(!pWindow) - return; + OpenGLWindow* pWindow = mrChartModel.getOpenGLWindow(); + if(!pWindow) + return; - boost::scoped_ptr<ExplicitCategoriesProvider> pCatProvider(new ExplicitCategoriesProvider(xCooSys, mrChartModel)); + boost::scoped_ptr<ExplicitCategoriesProvider> pCatProvider(new ExplicitCategoriesProvider(xCooSys, mrChartModel)); - pWindow->Show(); + pWindow->Show(); + + m_pGL3DPlotter.reset(new GL3DBarChart(xChartType, aDataSeries, *pWindow, *pCatProvider)); + m_pGL3DPlotter->create3DShapes(); + } - GL3DBarChart aBarChart(xChartType, aDataSeries, *pWindow, *pCatProvider); - aBarChart.create3DShapes(); - aBarChart.render(); + m_pGL3DPlotter->render(); } } //namespace chart diff --git a/chart2/source/view/main/GL3DPlotterBase.cxx b/chart2/source/view/main/GL3DPlotterBase.cxx new file mode 100644 index 0000000..e342b68 --- /dev/null +++ b/chart2/source/view/main/GL3DPlotterBase.cxx @@ -0,0 +1,18 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <GL3DPlotterBase.hxx> + +namespace chart { + +GL3DPlotterBase::~GL3DPlotterBase() {} + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit e2f94a8e2cf1761f5e2b0ae166f6a8bd73e0a15d Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Mon May 12 10:50:16 2014 -0400 Move this function object to o3tl. Change-Id: I9d1710fbed3c5753e84ed343c5136ab87909624d diff --git a/include/o3tl/deleter.hxx b/include/o3tl/deleter.hxx new file mode 100644 index 0000000..7f9e50d --- /dev/null +++ b/include/o3tl/deleter.hxx @@ -0,0 +1,34 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef INCLUDED_O3TL_DELETER_HXX +#define INCLUDED_O3TL_DELETER_HXX + +#include <functional> + +namespace o3tl { + +/** + * Function object to allow deleting instances stored in STL containers as + * pointers. + */ +template<typename T> +struct default_deleter : public std::unary_function<T*, void> +{ + void operator() (T* p) + { + delete p; + } +}; + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/inc/stlalgorithm.hxx b/sc/inc/stlalgorithm.hxx index d7b4d51..3c70144 100644 --- a/sc/inc/stlalgorithm.hxx +++ b/sc/inc/stlalgorithm.hxx @@ -15,19 +15,6 @@ #include <rtl/alloc.h> -/** - * Function object to allow deleting instances stored in STL containers as - * pointers. - */ -template<typename T> -struct ScDeleteObjectByPtr : public ::std::unary_function<T*, void> -{ - void operator() (T* p) - { - delete p; - } -}; - namespace sc { /** diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx index 443d8fd..4a25df7 100644 --- a/sc/source/core/data/column.cxx +++ b/sc/source/core/data/column.cxx @@ -51,6 +51,7 @@ #include <svl/sharedstringpool.hxx> #include <editeng/scripttypeitem.hxx> #include <editeng/fieldupdater.hxx> +#include <o3tl/deleter.hxx> #include <cstring> #include <map> @@ -2227,7 +2228,7 @@ class UpdateRefOnNonCopy : std::unary_function<sc::FormulaGroupEntry, void> if (!mpUndoDoc->SetFormulaCells(rOldPos, aCells)) // Insertion failed. Delete all formula cells. - std::for_each(aCells.begin(), aCells.end(), ScDeleteObjectByPtr<ScFormulaCell>()); + std::for_each(aCells.begin(), aCells.end(), o3tl::default_deleter<ScFormulaCell>()); } public: diff --git a/sc/source/core/data/columnspanset.cxx b/sc/source/core/data/columnspanset.cxx index b06f9f7..8cef966 100644 --- a/sc/source/core/data/columnspanset.cxx +++ b/sc/source/core/data/columnspanset.cxx @@ -8,7 +8,6 @@ */ #include "columnspanset.hxx" -#include "stlalgorithm.hxx" #include "column.hxx" #include "table.hxx" #include "document.hxx" @@ -16,6 +15,7 @@ #include "markdata.hxx" #include "rangelst.hxx" #include <fstalgorithm.hxx> +#include <o3tl/deleter.hxx> #include <algorithm> @@ -67,7 +67,7 @@ ColumnSpanSet::~ColumnSpanSet() if (!pTab) continue; - std::for_each(pTab->begin(), pTab->end(), ScDeleteObjectByPtr<ColumnType>()); + std::for_each(pTab->begin(), pTab->end(), o3tl::default_deleter<ColumnType>()); delete pTab; } } diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index d0db4bd..02a1bbb 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -84,7 +84,6 @@ #include "externalrefmgr.hxx" #include "tabprotection.hxx" #include "clipparam.hxx" -#include "stlalgorithm.hxx" #include "defaultsoptions.hxx" #include "editutil.hxx" #include "stringutil.hxx" @@ -99,6 +98,7 @@ #include <tokenstringcontext.hxx> #include <formula/vectortoken.hxx> +#include <o3tl/deleter.hxx> #include <map> #include <limits> @@ -785,7 +785,7 @@ bool ScDocument::DeleteTabs( SCTAB nTab, SCTAB nSheets ) TableContainer::iterator it = maTabs.begin() + nTab; TableContainer::iterator itEnd = it + nSheets; - std::for_each(it, itEnd, ScDeleteObjectByPtr<ScTable>()); + std::for_each(it, itEnd, o3tl::default_deleter<ScTable>()); maTabs.erase(it, itEnd); // UpdateBroadcastAreas must be called between UpdateDeleteTab, // which ends listening, and StartAllListeners, to not modify diff --git a/sc/source/core/data/dptabres.cxx b/sc/source/core/data/dptabres.cxx index 792ebb4..542cf54 100644 --- a/sc/source/core/data/dptabres.cxx +++ b/sc/source/core/data/dptabres.cxx @@ -27,13 +27,13 @@ #include "dpitemdata.hxx" #include "document.hxx" -#include "stlalgorithm.hxx" #include "dpresfilter.hxx" #include "dputil.hxx" #include <osl/diagnose.h> #include <rtl/math.hxx> #include <rtl/strbuf.hxx> +#include <o3tl/deleter.hxx> #include <math.h> #include <float.h> @@ -757,7 +757,7 @@ ScDPResultData::ScDPResultData( ScDPSource& rSrc ) : ScDPResultData::~ScDPResultData() { - std::for_each(maDimMembers.begin(), maDimMembers.end(), ScDeleteObjectByPtr<ResultMembers>()); + std::for_each(maDimMembers.begin(), maDimMembers.end(), o3tl::default_deleter<ResultMembers>()); } void ScDPResultData::SetMeasureData( @@ -3550,7 +3550,7 @@ ScDPDataDimension::ScDPDataDimension( const ScDPResultData* pData ) : ScDPDataDimension::~ScDPDataDimension() { - std::for_each(maMembers.begin(), maMembers.end(), ScDeleteObjectByPtr<ScDPDataMember>()); + std::for_each(maMembers.begin(), maMembers.end(), o3tl::default_deleter<ScDPDataMember>()); } void ScDPDataDimension::InitFrom( const ScDPResultDimension* pDim ) diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx index 22a2a09..860d077 100644 --- a/sc/source/core/data/table3.cxx +++ b/sc/source/core/data/table3.cxx @@ -56,13 +56,13 @@ #include "tokenarray.hxx" #include "mtvcellfunc.hxx" #include "columnspanset.hxx" -#include <stlalgorithm.hxx> #include <fstalgorithm.hxx> #include <listenercontext.hxx> #include <sharedformula.hxx> #include <refhint.hxx> #include <svl/sharedstringpool.hxx> +#include <o3tl/deleter.hxx> #include <vector> #include <boost/scoped_ptr.hpp> @@ -293,7 +293,7 @@ public: delete[] pppInfo; if (mpRows) - std::for_each(mpRows->begin(), mpRows->end(), ScDeleteObjectByPtr<Row>()); + std::for_each(mpRows->begin(), mpRows->end(), o3tl::default_deleter<Row>()); } void SetKeepQuery( bool b ) { mbKeepQuery = b; } diff --git a/sc/source/core/tool/chartlis.cxx b/sc/source/core/tool/chartlis.cxx index db5c6cf..fafbf25 100644 --- a/sc/source/core/tool/chartlis.cxx +++ b/sc/source/core/tool/chartlis.cxx @@ -23,7 +23,8 @@ #include "brdcst.hxx" #include "document.hxx" #include "reftokenhelper.hxx" -#include "stlalgorithm.hxx" + +#include <o3tl/deleter.hxx> using namespace com::sun::star; using ::std::vector; @@ -575,7 +576,7 @@ void ScChartListenerCollection::FreeUnused() std::for_each(aUsed.begin(), aUsed.end(), InsertChartListener(maListeners)); // Now, delete the ones no longer needed. - std::for_each(aUnused.begin(), aUnused.end(), ScDeleteObjectByPtr<ScChartListener>()); + std::for_each(aUnused.begin(), aUnused.end(), o3tl::default_deleter<ScChartListener>()); } void ScChartListenerCollection::FreeUno( const uno::Reference< chart::XChartDataChangeEventListener >& rListener, @@ -603,7 +604,7 @@ void ScChartListenerCollection::FreeUno( const uno::Reference< chart::XChartData std::for_each(aUsed.begin(), aUsed.end(), InsertChartListener(maListeners)); // Now, delete the ones no longer needed. - std::for_each(aUnused.begin(), aUnused.end(), ScDeleteObjectByPtr<ScChartListener>()); + std::for_each(aUnused.begin(), aUnused.end(), o3tl::default_deleter<ScChartListener>()); } void ScChartListenerCollection::StartTimer() diff --git a/sc/source/core/tool/rangelst.cxx b/sc/source/core/tool/rangelst.cxx index 37c7a0e..c5b0d21 100644 --- a/sc/source/core/tool/rangelst.cxx +++ b/sc/source/core/tool/rangelst.cxx @@ -26,7 +26,7 @@ #include "refupdat.hxx" #include "rechead.hxx" #include "compiler.hxx" -#include "stlalgorithm.hxx" +#include <o3tl/deleter.hxx> using ::std::vector; using ::std::advance; @@ -1073,7 +1073,7 @@ ScRange* ScRangeList::Remove(size_t nPos) void ScRangeList::RemoveAll() { - for_each(maRanges.begin(), maRanges.end(), ScDeleteObjectByPtr<ScRange>()); + for_each(maRanges.begin(), maRanges.end(), o3tl::default_deleter<ScRange>()); maRanges.clear(); } @@ -1196,7 +1196,7 @@ ScRangeList ScRangeList::GetIntersectedRange(const ScRange& rRange) const // ScRangePairList ScRangePairList::~ScRangePairList() { - for_each( maPairs.begin(), maPairs.end(), ScDeleteObjectByPtr<ScRangePair>() ); + for_each( maPairs.begin(), maPairs.end(), o3tl::default_deleter<ScRangePair>() ); maPairs.clear(); } diff --git a/sc/source/filter/xcl97/xcl97rec.cxx b/sc/source/filter/xcl97/xcl97rec.cxx index 5f1853c..abf9d3b 100644 --- a/sc/source/filter/xcl97/xcl97rec.cxx +++ b/sc/source/filter/xcl97/xcl97rec.cxx @@ -56,6 +56,7 @@ #include <filter/msfilter/msoleexp.hxx> #include <unotools/localedatawrapper.hxx> +#include <o3tl/deleter.hxx> #include <stdio.h> @@ -68,7 +69,6 @@ #include "docoptio.hxx" #include "patattr.hxx" #include "tabprotection.hxx" -#include "stlalgorithm.hxx" #include <com/sun/star/sheet/XCellAddressable.hpp> #include <com/sun/star/sheet/XCellRangeAddressable.hpp> @@ -109,7 +109,7 @@ XclExpObjList::XclExpObjList( const XclExpRoot& rRoot, XclEscherEx& rEscherEx ) XclExpObjList::~XclExpObjList() { - ::std::for_each(maObjs.begin(), maObjs.end(), ScDeleteObjectByPtr<XclObj>()); + std::for_each(maObjs.begin(), maObjs.end(), o3tl::default_deleter<XclObj>()); delete pMsodrawingPerSheet; delete pSolverContainer; } diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx index 29e4efa..e5cb28e 100644 --- a/sc/source/ui/unoobj/chart2uno.cxx +++ b/sc/source/ui/unoobj/chart2uno.cxx @@ -32,7 +32,6 @@ #include "compiler.hxx" #include "reftokenhelper.hxx" #include "chartlis.hxx" -#include "stlalgorithm.hxx" #include "tokenuno.hxx" #include "docsh.hxx" #include "cellvalue.hxx" @@ -55,6 +54,7 @@ #include <comphelper/processfactory.hxx> #include <rtl/math.hxx> +#include <o3tl/deleter.hxx> SC_SIMPLE_SERVICE_INFO( ScChart2DataProvider, "ScChart2DataProvider", "com.sun.star.chart2.data.DataProvider") @@ -156,7 +156,7 @@ struct TokenTable : boost::noncopyable } void clear() { - ::std::for_each(maTokens.begin(), maTokens.end(), ScDeleteObjectByPtr<FormulaToken>()); + std::for_each(maTokens.begin(), maTokens.end(), o3tl::default_deleter<FormulaToken>()); } void push_back( FormulaToken* pToken ) diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index 7df4869..9b2331f 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -61,6 +61,8 @@ #include <rtl/ustrbuf.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/string.hxx> +#include <o3tl/deleter.hxx> + #include <com/sun/star/container/XNameContainer.hpp> #include <com/sun/star/document/NamedPropertyValues.hpp> @@ -456,7 +458,7 @@ ScViewData::~ScViewData() KillEditView(); delete pOptions; ::std::for_each( - maTabData.begin(), maTabData.end(), ScDeleteObjectByPtr<ScViewDataTable>()); + maTabData.begin(), maTabData.end(), o3tl::default_deleter<ScViewDataTable>()); } void ScViewData::UpdateCurrentTab() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits