diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-11-22 08:53:50 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-11-22 12:44:43 +0100 |
commit | a73494cf130866d4e678a1f421df56cdba7441d8 (patch) | |
tree | 7702df19639902db9fd089adf325e31c59b6ea5d /sc/source/ui/unoobj/cellsuno.cxx | |
parent | 266aab73a88ae5b62fcddaf383107d8e7edc51f2 (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.cxx | 221 |
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; } |