canvas/inc/verifyinput.hxx | 6 - canvas/source/directx/dx_config.cxx | 2 canvas/source/directx/dx_surfacebitmap.cxx | 2 editeng/source/accessibility/AccessibleEditableTextPara.cxx | 25 ++--- editeng/source/accessibility/AccessibleStaticTextBase.cxx | 23 +--- scripting/source/dlgprov/dlgevtatt.cxx | 59 +++++------- scripting/source/dlgprov/dlgevtatt.hxx | 1 scripting/source/dlgprov/dlgprov.cxx | 7 - 8 files changed, 53 insertions(+), 72 deletions(-)
New commits: commit ccdb98c0e590281f63a8c180a2eb87086210efbd Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Sat May 4 13:04:41 2024 +0500 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Sun May 12 05:04:57 2024 +0200 Drop some uses of css::uno::Sequence::getConstArray where it was obsoleted by commits 2484de6728bd11bb7949003d112f1ece2223c7a1 (Remove non-const Sequence::begin()/end() in internal code, 2021-10-15) and fb3c04bd1930eedacd406874e1a285d62bbf27d9 (Drop non-const Sequence::operator[] in internal code 2021-11-05). Change-Id: I64683093afc48ddf2307dc1dee2302cf0b3cbecc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167110 Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Tested-by: Jenkins diff --git a/canvas/inc/verifyinput.hxx b/canvas/inc/verifyinput.hxx index b37468ebbe24..7dd956c92882 100644 --- a/canvas/inc/verifyinput.hxx +++ b/canvas/inc/verifyinput.hxx @@ -360,10 +360,8 @@ namespace canvas const css::uno::Reference< css::uno::XInterface >& xIf, ::sal_Int16 nArgPos ) { - const SequenceContent* pCurr = rSequence.getConstArray(); - const SequenceContent* pEnd = pCurr + rSequence.getLength(); - while( pCurr != pEnd ) - verifyInput( *pCurr++, pStr, xIf, nArgPos ); + for (auto& element : rSequence) + verifyInput(element, pStr, xIf, nArgPos); } /// Catch-all, to handle cases that DON'T need input checking (i.e. the Integer geometry ones) diff --git a/canvas/source/directx/dx_config.cxx b/canvas/source/directx/dx_config.cxx index c1d9020845a2..643877659edd 100644 --- a/canvas/source/directx/dx_config.cxx +++ b/canvas/source/directx/dx_config.cxx @@ -48,7 +48,7 @@ namespace dxcanvas uno::Sequence< uno::Any > aProps( GetProperties( { "DeviceDenylist" } )); uno::Sequence< sal_Int32 > aValues; - if( aProps.getLength() > 0 && + if (aProps.hasElements() && (aProps[0] >>= aValues) ) { const sal_Int32* pValues = aValues.getConstArray(); diff --git a/canvas/source/directx/dx_surfacebitmap.cxx b/canvas/source/directx/dx_surfacebitmap.cxx index 5a3992eea221..c425af2911ce 100644 --- a/canvas/source/directx/dx_surfacebitmap.cxx +++ b/canvas/source/directx/dx_surfacebitmap.cxx @@ -542,7 +542,7 @@ namespace dxcanvas if(FAILED(mpSurface->LockRect(&aLockedRect,nullptr,D3DLOCK_NOSYSLOCK|D3DLOCK_READONLY))) throw uno::RuntimeException("failed to lock directx surface to surface memory"); - sal_uInt8 const *pSrc = reinterpret_cast<sal_uInt8 const *>(data.getConstArray()); + auto* pSrc = data.getConstArray(); sal_uInt8 *pDst = (static_cast<BYTE *>(aLockedRect.pBits)+(rect.Y1*aLockedRect.Pitch))+rect.X1; sal_uInt32 nSegmentSizeInBytes = nWidth<<4; for(sal_uInt32 y=0; y<nHeight; ++y) diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.cxx b/editeng/source/accessibility/AccessibleEditableTextPara.cxx index 1ab756832ad7..da13332d9ad4 100644 --- a/editeng/source/accessibility/AccessibleEditableTextPara.cxx +++ b/editeng/source/accessibility/AccessibleEditableTextPara.cxx @@ -796,11 +796,14 @@ namespace accessibility struct IndexCompare { - const PropertyValue* pValues; - explicit IndexCompare( const PropertyValue* pVals ) : pValues(pVals) {} + const uno::Sequence<beans::PropertyValue>& m_rValues; + explicit IndexCompare(const uno::Sequence<beans::PropertyValue>& rValues) + : m_rValues(rValues) + { + } bool operator() ( sal_Int32 a, sal_Int32 b ) const { - return pValues[a].Name < pValues[b].Name; + return m_rValues[a].Name < m_rValues[b].Name; } }; @@ -1228,19 +1231,13 @@ namespace accessibility //sort property values // build sorted index array sal_Int32 nLength = aRes.getLength(); - const beans::PropertyValue* pPairs = aRes.getConstArray(); - std::unique_ptr<sal_Int32[]> pIndices(new sal_Int32[nLength]); - sal_Int32 i = 0; - for( i = 0; i < nLength; i++ ) - pIndices[i] = i; - std::sort( &pIndices[0], &pIndices[nLength], IndexCompare(pPairs) ); + std::vector<sal_Int32> indices(nLength); + std::iota(indices.begin(), indices.end(), 0); + std::sort(indices.begin(), indices.end(), IndexCompare(aRes)); // create sorted sequences according to index array uno::Sequence<beans::PropertyValue> aNewValues( nLength ); - beans::PropertyValue* pNewValues = aNewValues.getArray(); - for( i = 0; i < nLength; i++ ) - { - pNewValues[i] = pPairs[pIndices[i]]; - } + std::transform(indices.begin(), indices.end(), aNewValues.getArray(), + [&aRes](sal_Int32 index) { return aRes[index]; }); return aNewValues; } diff --git a/editeng/source/accessibility/AccessibleStaticTextBase.cxx b/editeng/source/accessibility/AccessibleStaticTextBase.cxx index 262c52781e0d..7d22150e1503 100644 --- a/editeng/source/accessibility/AccessibleStaticTextBase.cxx +++ b/editeng/source/accessibility/AccessibleStaticTextBase.cxx @@ -903,13 +903,9 @@ namespace accessibility for ( const auto& rDefAttr : aDefAttrVec ) { - const beans::PropertyValue* pItr = aSeq.getConstArray(); - const beans::PropertyValue* pEnd = pItr + aSeq.getLength(); - const beans::PropertyValue* pFind = std::find_if( pItr, pEnd, PropertyValueEqualFunctor(rDefAttr) ); - if ( pFind != pEnd ) - { - aIntersectionVec.push_back( *pFind ); - } + auto it = std::find_if(aSeq.begin(), aSeq.end(), PropertyValueEqualFunctor(rDefAttr)); + if (it != aSeq.end()) + aIntersectionVec.push_back(*it); } aDefAttrVec.swap( aIntersectionVec ); @@ -937,16 +933,13 @@ namespace accessibility uno::Sequence< beans::PropertyValue > aIntersectionSeq = getDefaultAttributes( RequestedAttributes ); PropertyValueVector aDiffVec; - const beans::PropertyValue* pDefAttr = aDefAttrSeq.getConstArray(); - const sal_Int32 nLength = aDefAttrSeq.getLength(); - for ( sal_Int32 i = 0; i < nLength; ++i ) + for (auto& defAttr : aDefAttrSeq) { - const beans::PropertyValue* pItr = aIntersectionSeq.getConstArray(); - const beans::PropertyValue* pEnd = pItr + aIntersectionSeq.getLength(); - bool bNone = std::none_of( pItr, pEnd, PropertyValueEqualFunctor( pDefAttr[i] ) ); - if ( bNone && pDefAttr[i].Handle != 0) + bool bNone = std::none_of(aIntersectionSeq.begin(), aIntersectionSeq.end(), + PropertyValueEqualFunctor(defAttr)); + if (bNone && defAttr.Handle != 0) { - aDiffVec.push_back( pDefAttr[i] ); + aDiffVec.push_back(defAttr); } } diff --git a/scripting/source/dlgprov/dlgevtatt.cxx b/scripting/source/dlgprov/dlgevtatt.cxx index 6facf2e75dbd..53c2e5b67406 100644 --- a/scripting/source/dlgprov/dlgevtatt.cxx +++ b/scripting/source/dlgprov/dlgevtatt.cxx @@ -281,37 +281,33 @@ namespace dlgprov // We know that we have to do with instances of XControl. // Otherwise this is not the right implementation for // XScriptEventsAttacher and we have to give up. - Reference< XControl > xControl( rObject, UNO_QUERY ); - Reference< XControlContainer > xControlContainer( xControl, UNO_QUERY ); - Reference< XDialog > xDialog( xControl, UNO_QUERY ); - if ( !xControl.is() ) - throw IllegalArgumentException(); - - // get XEventsSupplier from control model - Reference< XControlModel > xControlModel = xControl->getModel(); - Reference< XScriptEventsSupplier > xEventsSupplier( xControlModel, UNO_QUERY ); - attachEventsToControl( xControl, xEventsSupplier, Helper ); - if ( mbUseFakeVBAEvents ) - { - xEventsSupplier.set( getFakeVbaEventsSupplier( xControl, sDialogCodeName ) ); - Any newHelper(xControl ); - attachEventsToControl( xControl, xEventsSupplier, newHelper ); - } - if ( xControlContainer.is() && !xDialog.is() ) - { - Sequence< Reference< XControl > > aControls = xControlContainer->getControls(); - sal_Int32 nControlCount = aControls.getLength(); - - Sequence< Reference< XInterface > > aObjects( nControlCount ); - Reference< XInterface >* pObjects2 = aObjects.getArray(); - const Reference< XControl >* pControls = aControls.getConstArray(); + nestedAttachEvents(rObject.query<XControl>(), Helper, sDialogCodeName); + } + } - for ( sal_Int32 i2 = 0; i2 < nControlCount; ++i2 ) - { - pObjects2[i2].set( pControls[i2], UNO_QUERY ); - } - nestedAttachEvents( aObjects, Helper, sDialogCodeName ); - } + void DialogEventsAttacherImpl::nestedAttachEvents( + const css::uno::Reference<css::awt::XControl>& xControl, const css::uno::Any& Helper, + OUString& sDialogCodeName) + { + if (!xControl.is()) + throw IllegalArgumentException(); + Reference<XControlContainer> xControlContainer(xControl, UNO_QUERY); + Reference<XDialog> xDialog(xControl, UNO_QUERY); + + // get XEventsSupplier from control model + Reference<XControlModel> xControlModel = xControl->getModel(); + Reference<XScriptEventsSupplier> xEventsSupplier(xControlModel, UNO_QUERY); + attachEventsToControl(xControl, xEventsSupplier, Helper); + if (mbUseFakeVBAEvents) + { + xEventsSupplier.set(getFakeVbaEventsSupplier(xControl, sDialogCodeName)); + Any newHelper(xControl); + attachEventsToControl(xControl, xEventsSupplier, newHelper); + } + if (xControlContainer.is() && !xDialog.is()) + { + for (auto& xChildControl : xControlContainer->getControls()) + nestedAttachEvents(xChildControl, Helper, sDialogCodeName); } } @@ -527,8 +523,7 @@ namespace dlgprov { OUString aMethodName = aScriptEvent.ScriptCode.copy( strlen("vnd.sun.star.UNO:") ); - const Any* pArguments = aScriptEvent.Arguments.getConstArray(); - Any aEventObject = pArguments[0]; + Any aEventObject = aScriptEvent.Arguments[0]; bool bHandled = false; if( m_xHandler.is() ) diff --git a/scripting/source/dlgprov/dlgevtatt.hxx b/scripting/source/dlgprov/dlgevtatt.hxx index 62a131de03a9..73e15ebb4566 100644 --- a/scripting/source/dlgprov/dlgevtatt.hxx +++ b/scripting/source/dlgprov/dlgevtatt.hxx @@ -54,6 +54,7 @@ namespace dlgprov css::uno::Reference< css::script::XScriptListener > const & getScriptListenerForKey( const OUString& sScriptName ); css::uno::Reference< css::script::XScriptEventsSupplier > getFakeVbaEventsSupplier( const css::uno::Reference< css::awt::XControl>& xControl, OUString const & sCodeName ); void nestedAttachEvents( const css::uno::Sequence< css::uno::Reference< css::uno::XInterface > >& Objects, const css::uno::Any& Helper, OUString& sDialogCodeName ); + void nestedAttachEvents( const css::uno::Reference< css::awt::XControl >& xControl, const css::uno::Any& Helper, OUString& sDialogCodeName ); void attachEventsToControl( const css::uno::Reference< css::awt::XControl>& xControl, const css::uno::Reference< css::script::XScriptEventsSupplier >& events, const css::uno::Any& Helper ); public: DialogEventsAttacherImpl( const css::uno::Reference< css::uno::XComponentContext >& rxContext, diff --git a/scripting/source/dlgprov/dlgprov.cxx b/scripting/source/dlgprov/dlgprov.cxx index 32e85900d440..bf499982ac7a 100644 --- a/scripting/source/dlgprov/dlgprov.cxx +++ b/scripting/source/dlgprov/dlgprov.cxx @@ -440,15 +440,12 @@ namespace dlgprov return; Sequence< Reference< XControl > > aControls = xControlContainer->getControls(); - const Reference< XControl >* pControls = aControls.getConstArray(); sal_Int32 nControlCount = aControls.getLength(); Sequence< Reference< XInterface > > aObjects( nControlCount + 1 ); Reference< XInterface >* pObjects = aObjects.getArray(); - for ( sal_Int32 i = 0; i < nControlCount; ++i ) - { - pObjects[i].set( pControls[i], UNO_QUERY ); - } + std::transform(aControls.begin(), aControls.end(), pObjects, + [](auto& xControl) { return xControl.template query<XInterface>(); }); // also add the dialog control itself to the sequence pObjects[nControlCount].set( rxControl, UNO_QUERY );