summaryrefslogtreecommitdiff
path: root/sw/source/core/doc/docbasic.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/doc/docbasic.cxx')
-rw-r--r--sw/source/core/doc/docbasic.cxx42
1 files changed, 22 insertions, 20 deletions
diff --git a/sw/source/core/doc/docbasic.cxx b/sw/source/core/doc/docbasic.cxx
index 723cd0881f74..155a28f73d60 100644
--- a/sw/source/core/doc/docbasic.cxx
+++ b/sw/source/core/doc/docbasic.cxx
@@ -36,16 +36,16 @@
using namespace ::com::sun::star::uno;
-static Sequence<Any> *lcl_docbasic_convertArgs( SbxArray& rArgs )
+static std::optional<Sequence<Any>> lcl_docbasic_convertArgs( SbxArray& rArgs )
{
- Sequence<Any> *pRet = nullptr;
+ std::optional<Sequence<Any>> oRet;
sal_uInt32 nCount = rArgs.Count();
if( nCount > 1 )
{
nCount--;
- pRet = new Sequence<Any>( nCount );
- Any *pUnoArgs = pRet->getArray();
+ oRet.emplace( nCount );
+ Any *pUnoArgs = oRet->getArray();
for( sal_uInt32 i=0; i<nCount; i++ )
{
SbxVariable* pVar = rArgs.Get(i + 1);
@@ -70,7 +70,7 @@ static Sequence<Any> *lcl_docbasic_convertArgs( SbxArray& rArgs )
}
}
- return pRet;
+ return oRet;
}
void SwDoc::ExecMacro( const SvxMacro& rMacro, OUString* pRet, SbxArray* pArgs )
@@ -99,17 +99,17 @@ void SwDoc::ExecMacro( const SvxMacro& rMacro, OUString* pRet, SbxArray* pArgs )
break;
case EXTENDED_STYPE:
{
- std::unique_ptr<Sequence<Any> > pUnoArgs;
+ std::optional<Sequence<Any> > oUnoArgs;
if( pArgs )
{
// better to rename the local function to lcl_translateBasic2Uno and
// a much shorter routine can be found in sfx2/source/doc/objmisc.cxx
- pUnoArgs.reset(lcl_docbasic_convertArgs( *pArgs ));
+ oUnoArgs = lcl_docbasic_convertArgs( *pArgs );
}
- if (!pUnoArgs)
+ if (!oUnoArgs)
{
- pUnoArgs.reset(new Sequence< Any > (0));
+ oUnoArgs.emplace(0);
}
// TODO - return value is not handled
@@ -120,7 +120,7 @@ void SwDoc::ExecMacro( const SvxMacro& rMacro, OUString* pRet, SbxArray* pArgs )
SAL_INFO("sw", "SwDoc::ExecMacro URL is " << rMacro.GetMacName() );
mpDocShell->CallXScript(
- rMacro.GetMacName(), *pUnoArgs, aRet, aOutArgsIndex, aOutArgs);
+ rMacro.GetMacName(), *oUnoArgs, aRet, aOutArgsIndex, aOutArgs);
break;
}
@@ -140,10 +140,12 @@ sal_uInt16 SwDoc::CallEvent( SvMacroItemId nEvent, const SwCallMouseEvent& rCall
case EVENT_OBJECT_INETATTR:
if( bCheckPtr )
{
- for (const SfxPoolItem* pItem : GetAttrPool().GetItemSurrogates(RES_TXTATR_INETFMT))
+ ItemSurrogates aSurrogates;
+ GetAttrPool().GetItemSurrogates(aSurrogates, RES_TXTATR_INETFMT);
+ for (const SfxPoolItem* pItem : aSurrogates)
{
auto pFormatItem = dynamic_cast<const SwFormatINetFormat*>(pItem);
- if( pFormatItem && rCallEvent.PTR.pINetAttr == pFormatItem )
+ if( pFormatItem && SfxPoolItem::areSame(rCallEvent.PTR.pINetAttr, pFormatItem) )
{
bCheckPtr = false; // misuse as a flag
break;
@@ -157,10 +159,10 @@ sal_uInt16 SwDoc::CallEvent( SvMacroItemId nEvent, const SwCallMouseEvent& rCall
case EVENT_OBJECT_URLITEM:
case EVENT_OBJECT_IMAGE:
{
- const SwFrameFormat* pFormat = rCallEvent.PTR.pFormat;
+ const auto pSpz = static_cast<const sw::SpzFrameFormat*>(rCallEvent.PTR.pFormat);
if( bCheckPtr )
{
- if (GetSpzFrameFormats()->IsAlive(pFormat))
+ if (GetSpzFrameFormats()->IsAlive(pSpz))
bCheckPtr = false; // misuse as a flag
else
// this shouldn't be possible now that SwCallMouseEvent
@@ -168,7 +170,7 @@ sal_uInt16 SwDoc::CallEvent( SvMacroItemId nEvent, const SwCallMouseEvent& rCall
assert(false);
}
if( !bCheckPtr )
- pTable = &pFormat->GetMacro().GetMacroTable();
+ pTable = &pSpz->GetMacro().GetMacroTable();
}
break;
@@ -177,10 +179,10 @@ sal_uInt16 SwDoc::CallEvent( SvMacroItemId nEvent, const SwCallMouseEvent& rCall
const IMapObject* pIMapObj = rCallEvent.PTR.IMAP.pIMapObj;
if( bCheckPtr )
{
- const SwFrameFormat* pFormat = rCallEvent.PTR.IMAP.pFormat;
- if (GetSpzFrameFormats()->IsAlive(pFormat))
+ const auto pSpz = static_cast<const sw::SpzFrameFormat*>(rCallEvent.PTR.IMAP.pFormat);
+ if (GetSpzFrameFormats()->IsAlive(pSpz))
{
- const ImageMap* pIMap = pFormat->GetURL().GetMap();
+ const ImageMap* pIMap = pSpz->GetURL().GetMap();
if (pIMap)
{
for( size_t nPos = pIMap->GetIMapObjectCount(); nPos; )
@@ -213,7 +215,7 @@ sal_uInt16 SwDoc::CallEvent( SvMacroItemId nEvent, const SwCallMouseEvent& rCall
}
else if( EXTENDED_STYPE == rMacro.GetScriptType() )
{
- std::unique_ptr<Sequence<Any> > pUnoArgs(new Sequence<Any>());
+ Sequence<Any> aUnoArgs;
Any aRet;
Sequence< sal_Int16 > aOutArgsIndex;
@@ -222,7 +224,7 @@ sal_uInt16 SwDoc::CallEvent( SvMacroItemId nEvent, const SwCallMouseEvent& rCall
SAL_INFO("sw", "SwDoc::CallEvent URL is " << rMacro.GetMacName() );
nRet += ERRCODE_NONE == mpDocShell->CallXScript(
- rMacro.GetMacName(), *pUnoArgs,aRet, aOutArgsIndex, aOutArgs) ? 1 : 0;
+ rMacro.GetMacName(), aUnoArgs, aRet, aOutArgsIndex, aOutArgs) ? 1 : 0;
}
// JavaScript calls are ignored
}