Kaydet (Commit) 50887c90 authored tarafından Noel Grandin's avatar Noel Grandin

use unique_ptr in ScRangeUtil::IsAbsTabArea

Change-Id: I3a5f88eef1e7a8241921f2fed15a1ebc2c4c3445
Reviewed-on: https://gerrit.libreoffice.org/66006
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 6d859495
......@@ -51,7 +51,7 @@ public:
static bool IsAbsTabArea ( const OUString& rAreaStr,
const ScDocument* pDoc,
ScArea*** pppAreas,
std::unique_ptr<ScArea[]>* ppAreas,
sal_uInt16* pAreaCount,
bool bAcceptCellRef = false,
ScAddress::Details const & rDetails = ScAddress::detailsOOOa1 );
......
......@@ -86,7 +86,7 @@ void ScRangeUtil::CutPosString( const OUString& theAreaStr,
bool ScRangeUtil::IsAbsTabArea( const OUString& rAreaStr,
const ScDocument* pDoc,
ScArea*** pppAreas,
std::unique_ptr<ScArea[]>* ppAreas,
sal_uInt16* pAreaCount,
bool /* bAcceptCellRef */,
ScAddress::Details const & rDetails )
......@@ -143,12 +143,12 @@ bool ScRangeUtil::IsAbsTabArea( const OUString& rAreaStr,
bStrOk = true;
if ( pppAreas && pAreaCount ) // Array returned ?
if ( ppAreas && pAreaCount ) // Array returned ?
{
SCTAB nStartTab = aStartPos.Tab();
SCTAB nEndTab = aEndPos.Tab();
sal_uInt16 nTabCount = static_cast<sal_uInt16>(nEndTab-nStartTab+1);
ScArea** theAreas = new ScArea*[nTabCount];
ppAreas->reset(new ScArea[nTabCount]);
SCTAB nTab = 0;
sal_uInt16 i = 0;
ScArea theArea( 0, aStartPos.Col(), aStartPos.Row(),
......@@ -157,11 +157,10 @@ bool ScRangeUtil::IsAbsTabArea( const OUString& rAreaStr,
nTab = nStartTab;
for ( i=0; i<nTabCount; i++ )
{
theAreas[i] = new ScArea( theArea );
theAreas[i]->nTab = nTab;
(*ppAreas)[i] = theArea;
(*ppAreas)[i].nTab = nTab;
nTab++;
}
*pppAreas = theAreas;
*pAreaCount = nTabCount;
}
}
......
......@@ -426,7 +426,7 @@ IMPL_LINK( ScConsolidateDlg, ClickHdl, Button*, pBtn, void )
if ( !pEdDataArea->GetText().isEmpty() )
{
OUString aNewEntry( pEdDataArea->GetText() );
ScArea** ppAreas = nullptr;
std::unique_ptr<ScArea[]> ppAreas;
sal_uInt16 nAreaCount = 0;
const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
......@@ -438,24 +438,17 @@ IMPL_LINK( ScConsolidateDlg, ClickHdl, Button*, pBtn, void )
for ( sal_uInt16 i=0; i<nAreaCount; i++ )
{
OUString aNewArea;
const ScArea& rArea = ppAreas[i];
OUString aNewArea = ScRange( rArea.nColStart, rArea.nRowStart, rArea.nTab,
rArea.nColEnd, rArea.nRowEnd, rArea.nTab
).Format(ScRefFlags::RANGE_ABS_3D, pDoc, eConv);
if ( ppAreas[i] )
if ( pLbConsAreas->GetEntryPos( aNewArea )
== LISTBOX_ENTRY_NOTFOUND )
{
const ScArea& rArea = *(ppAreas[i]);
aNewArea = ScRange( rArea.nColStart, rArea.nRowStart, rArea.nTab,
rArea.nColEnd, rArea.nRowEnd, rArea.nTab
).Format(ScRefFlags::RANGE_ABS_3D, pDoc, eConv);
if ( pLbConsAreas->GetEntryPos( aNewArea )
== LISTBOX_ENTRY_NOTFOUND )
{
pLbConsAreas->InsertEntry( aNewArea );
}
delete ppAreas[i];
pLbConsAreas->InsertEntry( aNewArea );
}
}
delete [] ppAreas;
}
else if ( VerifyEdit( pEdDataArea ) )
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment