summaryrefslogtreecommitdiff
path: root/sc/source/ui/unoobj/cellsuno.cxx
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-11-22 08:53:50 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-11-22 12:44:43 +0100
commita73494cf130866d4e678a1f421df56cdba7441d8 (patch)
tree7702df19639902db9fd089adf325e31c59b6ea5d /sc/source/ui/unoobj/cellsuno.cxx
parent266aab73a88ae5b62fcddaf383107d8e7edc51f2 (diff)
improve function-local statics in sc
Change-Id: Ibde8aa9393591fe405bfad8ddb23ceda77723a35 Reviewed-on: https://gerrit.libreoffice.org/63781 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sc/source/ui/unoobj/cellsuno.cxx')
-rw-r--r--sc/source/ui/unoobj/cellsuno.cxx221
1 files changed, 87 insertions, 134 deletions
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index 5d318c0d3696..d9537c86acf7 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -1772,25 +1772,22 @@ void SAL_CALL ScCellRangesBase::release() throw()
uno::Sequence<uno::Type> SAL_CALL ScCellRangesBase::getTypes()
{
- static uno::Sequence<uno::Type> aTypes;
- if ( aTypes.getLength() == 0 )
- {
- aTypes.realloc(13);
- uno::Type* pPtr = aTypes.getArray();
- pPtr[0] = cppu::UnoType<beans::XPropertySet>::get();
- pPtr[1] = cppu::UnoType<beans::XMultiPropertySet>::get();
- pPtr[2] = cppu::UnoType<beans::XPropertyState>::get();
- pPtr[3] = cppu::UnoType<sheet::XSheetOperation>::get();
- pPtr[4] = cppu::UnoType<chart::XChartDataArray>::get();
- pPtr[5] = cppu::UnoType<util::XIndent>::get();
- pPtr[6] = cppu::UnoType<sheet::XCellRangesQuery>::get();
- pPtr[7] = cppu::UnoType<sheet::XFormulaQuery>::get();
- pPtr[8] = cppu::UnoType<util::XReplaceable>::get();
- pPtr[9] = cppu::UnoType<util::XModifyBroadcaster>::get();
- pPtr[10]= cppu::UnoType<lang::XServiceInfo>::get();
- pPtr[11]= cppu::UnoType<lang::XUnoTunnel>::get();
- pPtr[12]= cppu::UnoType<lang::XTypeProvider>::get();
- }
+ static uno::Sequence<uno::Type> const aTypes
+ {
+ cppu::UnoType<beans::XPropertySet>::get(),
+ cppu::UnoType<beans::XMultiPropertySet>::get(),
+ cppu::UnoType<beans::XPropertyState>::get(),
+ cppu::UnoType<sheet::XSheetOperation>::get(),
+ cppu::UnoType<chart::XChartDataArray>::get(),
+ cppu::UnoType<util::XIndent>::get(),
+ cppu::UnoType<sheet::XCellRangesQuery>::get(),
+ cppu::UnoType<sheet::XFormulaQuery>::get(),
+ cppu::UnoType<util::XReplaceable>::get(),
+ cppu::UnoType<util::XModifyBroadcaster>::get(),
+ cppu::UnoType<lang::XServiceInfo>::get(),
+ cppu::UnoType<lang::XUnoTunnel>::get(),
+ cppu::UnoType<lang::XTypeProvider>::get()
+ };
return aTypes;
}
@@ -4142,22 +4139,14 @@ void SAL_CALL ScCellRangesObj::release() throw()
uno::Sequence<uno::Type> SAL_CALL ScCellRangesObj::getTypes()
{
- static uno::Sequence<uno::Type> aTypes;
- if ( aTypes.getLength() == 0 )
- {
- uno::Sequence<uno::Type> aParentTypes(ScCellRangesBase::getTypes());
- long nParentLen = aParentTypes.getLength();
- const uno::Type* pParentPtr = aParentTypes.getConstArray();
-
- aTypes.realloc( nParentLen + 3 );
- uno::Type* pPtr = aTypes.getArray();
- pPtr[nParentLen + 0] = cppu::UnoType<sheet::XSheetCellRangeContainer>::get();
- pPtr[nParentLen + 1] = cppu::UnoType<container::XNameContainer>::get();
- pPtr[nParentLen + 2] = cppu::UnoType<container::XEnumerationAccess>::get();
-
- for (long i=0; i<nParentLen; i++)
- pPtr[i] = pParentPtr[i]; // parent types first
- }
+ static const uno::Sequence<uno::Type> aTypes = comphelper::concatSequences(
+ ScCellRangesBase::getTypes(),
+ uno::Sequence<uno::Type>
+ {
+ cppu::UnoType<sheet::XSheetCellRangeContainer>::get(),
+ cppu::UnoType<container::XNameContainer>::get(),
+ cppu::UnoType<container::XEnumerationAccess>::get()
+ } );
return aTypes;
}
@@ -4750,36 +4739,28 @@ void SAL_CALL ScCellRangeObj::release() throw()
uno::Sequence<uno::Type> SAL_CALL ScCellRangeObj::getTypes()
{
- static uno::Sequence<uno::Type> aTypes;
- if ( aTypes.getLength() == 0 )
- {
- uno::Sequence<uno::Type> aParentTypes(ScCellRangesBase::getTypes());
- long nParentLen = aParentTypes.getLength();
- const uno::Type* pParentPtr = aParentTypes.getConstArray();
-
- aTypes.realloc( nParentLen + 17 );
- uno::Type* pPtr = aTypes.getArray();
- pPtr[nParentLen + 0] = cppu::UnoType<sheet::XCellRangeAddressable>::get();
- pPtr[nParentLen + 1] = cppu::UnoType<sheet::XSheetCellRange>::get();
- pPtr[nParentLen + 2] = cppu::UnoType<sheet::XArrayFormulaRange>::get();
- pPtr[nParentLen + 3] = cppu::UnoType<sheet::XArrayFormulaTokens>::get();
- pPtr[nParentLen + 4] = cppu::UnoType<sheet::XCellRangeData>::get();
- pPtr[nParentLen + 5] = cppu::UnoType<sheet::XCellRangeFormula>::get();
- pPtr[nParentLen + 6] = cppu::UnoType<sheet::XMultipleOperation>::get();
- pPtr[nParentLen + 7] = cppu::UnoType<util::XMergeable>::get();
- pPtr[nParentLen + 8] = cppu::UnoType<sheet::XCellSeries>::get();
- pPtr[nParentLen + 9] = cppu::UnoType<table::XAutoFormattable>::get();
- pPtr[nParentLen +10] = cppu::UnoType<util::XSortable>::get();
- pPtr[nParentLen +11] = cppu::UnoType<sheet::XSheetFilterableEx>::get();
- pPtr[nParentLen +12] = cppu::UnoType<sheet::XSubTotalCalculatable>::get();
- pPtr[nParentLen +13] = cppu::UnoType<table::XColumnRowRange>::get();
- pPtr[nParentLen +14] = cppu::UnoType<util::XImportable>::get();
- pPtr[nParentLen +15] = cppu::UnoType<sheet::XCellFormatRangesSupplier>::get();
- pPtr[nParentLen +16] = cppu::UnoType<sheet::XUniqueCellFormatRangesSupplier>::get();
-
- for (long i=0; i<nParentLen; i++)
- pPtr[i] = pParentPtr[i]; // parent types first
- }
+ static const uno::Sequence<uno::Type> aTypes = comphelper::concatSequences(
+ ScCellRangesBase::getTypes(),
+ uno::Sequence<uno::Type>
+ {
+ cppu::UnoType<sheet::XCellRangeAddressable>::get(),
+ cppu::UnoType<sheet::XSheetCellRange>::get(),
+ cppu::UnoType<sheet::XArrayFormulaRange>::get(),
+ cppu::UnoType<sheet::XArrayFormulaTokens>::get(),
+ cppu::UnoType<sheet::XCellRangeData>::get(),
+ cppu::UnoType<sheet::XCellRangeFormula>::get(),
+ cppu::UnoType<sheet::XMultipleOperation>::get(),
+ cppu::UnoType<util::XMergeable>::get(),
+ cppu::UnoType<sheet::XCellSeries>::get(),
+ cppu::UnoType<table::XAutoFormattable>::get(),
+ cppu::UnoType<util::XSortable>::get(),
+ cppu::UnoType<sheet::XSheetFilterableEx>::get(),
+ cppu::UnoType<sheet::XSubTotalCalculatable>::get(),
+ cppu::UnoType<table::XColumnRowRange>::get(),
+ cppu::UnoType<util::XImportable>::get(),
+ cppu::UnoType<sheet::XCellFormatRangesSupplier>::get(),
+ cppu::UnoType<sheet::XUniqueCellFormatRangesSupplier>::get()
+ } );
return aTypes;
}
@@ -5993,28 +5974,20 @@ void SAL_CALL ScCellObj::release() throw()
uno::Sequence<uno::Type> SAL_CALL ScCellObj::getTypes()
{
- static uno::Sequence<uno::Type> aTypes;
- if ( aTypes.getLength() == 0 )
- {
- uno::Sequence<uno::Type> aParentTypes(ScCellRangeObj::getTypes());
- long nParentLen = aParentTypes.getLength();
- const uno::Type* pParentPtr = aParentTypes.getConstArray();
-
- aTypes.realloc( nParentLen + 9 );
- uno::Type* pPtr = aTypes.getArray();
- pPtr[nParentLen + 0] = cppu::UnoType<table::XCell>::get();
- pPtr[nParentLen + 1] = cppu::UnoType<sheet::XCellAddressable>::get();
- pPtr[nParentLen + 2] = cppu::UnoType<text::XText>::get();
- pPtr[nParentLen + 3] = cppu::UnoType<container::XEnumerationAccess>::get();
- pPtr[nParentLen + 4] = cppu::UnoType<sheet::XSheetAnnotationAnchor>::get();
- pPtr[nParentLen + 5] = cppu::UnoType<text::XTextFieldsSupplier>::get();
- pPtr[nParentLen + 6] = cppu::UnoType<document::XActionLockable>::get();
- pPtr[nParentLen + 7] = cppu::UnoType<sheet::XFormulaTokens>::get();
- pPtr[nParentLen + 8] = cppu::UnoType<table::XCell2>::get();
-
- for (long i=0; i<nParentLen; i++)
- pPtr[i] = pParentPtr[i]; // parent types first
- }
+ static const uno::Sequence<uno::Type> aTypes = comphelper::concatSequences(
+ ScCellRangeObj::getTypes(),
+ uno::Sequence<uno::Type>
+ {
+ cppu::UnoType<table::XCell>::get(),
+ cppu::UnoType<sheet::XCellAddressable>::get(),
+ cppu::UnoType<text::XText>::get(),
+ cppu::UnoType<container::XEnumerationAccess>::get(),
+ cppu::UnoType<sheet::XSheetAnnotationAnchor>::get(),
+ cppu::UnoType<text::XTextFieldsSupplier>::get(),
+ cppu::UnoType<document::XActionLockable>::get(),
+ cppu::UnoType<sheet::XFormulaTokens>::get(),
+ cppu::UnoType<table::XCell2>::get()
+ } );
return aTypes;
}
@@ -6756,39 +6729,30 @@ void SAL_CALL ScTableSheetObj::release() throw()
uno::Sequence<uno::Type> SAL_CALL ScTableSheetObj::getTypes()
{
- static uno::Sequence<uno::Type> aTypes;
- if ( aTypes.getLength() == 0 )
- {
- uno::Sequence<uno::Type> aParentTypes = ScCellRangeObj::getTypes();
- long nParentLen = aParentTypes.getLength();
- const uno::Type* pParentPtr = aParentTypes.getConstArray();
-
- aTypes.realloc(nParentLen + 19);
-
- uno::Type* pPtr = aTypes.getArray();
- pPtr[nParentLen + 0] = cppu::UnoType<sheet::XSpreadsheet>::get();
- pPtr[nParentLen + 1] = cppu::UnoType<container::XNamed>::get();
- pPtr[nParentLen + 2] = cppu::UnoType<sheet::XSheetPageBreak>::get();
- pPtr[nParentLen + 3] = cppu::UnoType<sheet::XCellRangeMovement>::get();
- pPtr[nParentLen + 4] = cppu::UnoType<table::XTableChartsSupplier>::get();
- pPtr[nParentLen + 5] = cppu::UnoType<sheet::XDataPilotTablesSupplier>::get();
- pPtr[nParentLen + 6] = cppu::UnoType<sheet::XScenariosSupplier>::get();
- pPtr[nParentLen + 7] = cppu::UnoType<sheet::XSheetAnnotationsSupplier>::get();
- pPtr[nParentLen + 8] = cppu::UnoType<drawing::XDrawPageSupplier>::get();
- pPtr[nParentLen + 9] = cppu::UnoType<sheet::XPrintAreas>::get();
- pPtr[nParentLen +10] = cppu::UnoType<sheet::XSheetAuditing>::get();
- pPtr[nParentLen +11] = cppu::UnoType<sheet::XSheetOutline>::get();
- pPtr[nParentLen +12] = cppu::UnoType<util::XProtectable>::get();
- pPtr[nParentLen +13] = cppu::UnoType<sheet::XScenario>::get();
- pPtr[nParentLen +14] = cppu::UnoType<sheet::XScenarioEnhanced>::get();
- pPtr[nParentLen +15] = cppu::UnoType<sheet::XSheetLinkable>::get();
- pPtr[nParentLen +16] = cppu::UnoType<sheet::XExternalSheetName>::get();
- pPtr[nParentLen +17] = cppu::UnoType<document::XEventsSupplier>::get();
- pPtr[nParentLen +18] = cppu::UnoType<table::XTablePivotChartsSupplier>::get();
-
- for (long i=0; i<nParentLen; i++)
- pPtr[i] = pParentPtr[i]; // parent types first
- }
+ static const uno::Sequence<uno::Type> aTypes = comphelper::concatSequences(
+ ScCellRangeObj::getTypes(),
+ uno::Sequence<uno::Type>
+ {
+ cppu::UnoType<sheet::XSpreadsheet>::get(),
+ cppu::UnoType<container::XNamed>::get(),
+ cppu::UnoType<sheet::XSheetPageBreak>::get(),
+ cppu::UnoType<sheet::XCellRangeMovement>::get(),
+ cppu::UnoType<table::XTableChartsSupplier>::get(),
+ cppu::UnoType<sheet::XDataPilotTablesSupplier>::get(),
+ cppu::UnoType<sheet::XScenariosSupplier>::get(),
+ cppu::UnoType<sheet::XSheetAnnotationsSupplier>::get(),
+ cppu::UnoType<drawing::XDrawPageSupplier>::get(),
+ cppu::UnoType<sheet::XPrintAreas>::get(),
+ cppu::UnoType<sheet::XSheetAuditing>::get(),
+ cppu::UnoType<sheet::XSheetOutline>::get(),
+ cppu::UnoType<util::XProtectable>::get(),
+ cppu::UnoType<sheet::XScenario>::get(),
+ cppu::UnoType<sheet::XScenarioEnhanced>::get(),
+ cppu::UnoType<sheet::XSheetLinkable>::get(),
+ cppu::UnoType<sheet::XExternalSheetName>::get(),
+ cppu::UnoType<document::XEventsSupplier>::get(),
+ cppu::UnoType<table::XTablePivotChartsSupplier>::get()
+ } );
return aTypes;
}
@@ -8521,20 +8485,9 @@ void SAL_CALL ScTableColumnObj::release() throw()
uno::Sequence<uno::Type> SAL_CALL ScTableColumnObj::getTypes()
{
- static uno::Sequence<uno::Type> aTypes;
- if ( aTypes.getLength() == 0 )
- {
- uno::Sequence<uno::Type> aParentTypes(ScCellRangeObj::getTypes());
- long nParentLen = aParentTypes.getLength();
- const uno::Type* pParentPtr = aParentTypes.getConstArray();
-
- aTypes.realloc( nParentLen + 1 );
- uno::Type* pPtr = aTypes.getArray();
- pPtr[nParentLen + 0] = cppu::UnoType<container::XNamed>::get();
-
- for (long i=0; i<nParentLen; i++)
- pPtr[i] = pParentPtr[i]; // parent types first
- }
+ static const uno::Sequence<uno::Type> aTypes = comphelper::concatSequences(
+ ScCellRangeObj::getTypes(),
+ uno::Sequence<uno::Type> { cppu::UnoType<container::XNamed>::get() } );
return aTypes;
}