[Libreoffice-commits] core.git: sc/source
Caolán McNamara
caolanm at redhat.com
Mon Nov 20 21:12:43 UTC 2017
sc/source/filter/excel/namebuff.cxx | 17 ++++++++---------
sc/source/filter/inc/namebuff.hxx | 2 +-
2 files changed, 9 insertions(+), 10 deletions(-)
New commits:
commit d4ec1c76b03c393dde62bd3913618147f9ddeea6
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Nov 20 10:22:00 2017 +0000
ofz#4321 Direct-leak
Change-Id: I0ce2da99f34082e4e090753e3a4aa8fcc4420a5d
Reviewed-on: https://gerrit.libreoffice.org/44955
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Jenkins <ci at libreoffice.org>
diff --git a/sc/source/filter/excel/namebuff.cxx b/sc/source/filter/excel/namebuff.cxx
index dbaa6b9257cd..efc575804106 100644
--- a/sc/source/filter/excel/namebuff.cxx
+++ b/sc/source/filter/excel/namebuff.cxx
@@ -47,7 +47,10 @@ sal_uInt32 StringHashEntry::MakeHashCode( const OUString& r )
return n;
}
-SharedFormulaBuffer::SharedFormulaBuffer( RootData* pRD ) : ExcRoot(pRD) {}
+SharedFormulaBuffer::SharedFormulaBuffer(RootData* pRD)
+ : ExcRoot(pRD)
+{
+}
SharedFormulaBuffer::~SharedFormulaBuffer()
{
@@ -56,18 +59,14 @@ SharedFormulaBuffer::~SharedFormulaBuffer()
void SharedFormulaBuffer::Clear()
{
- TokenArraysType::iterator it = maTokenArrays.begin(), itEnd = maTokenArrays.end();
- for (; it != itEnd; ++it)
- delete it->second;
-
maTokenArrays.clear();
}
void SharedFormulaBuffer::Store( const ScAddress& rPos, const ScTokenArray& rArray )
{
- ScTokenArray* pCode = rArray.Clone();
- pCode->GenHash();
- maTokenArrays.emplace(rPos, pCode);
+ std::unique_ptr<ScTokenArray> xCode(rArray.Clone());
+ xCode->GenHash();
+ maTokenArrays.emplace(rPos, std::move(xCode));
}
const ScTokenArray* SharedFormulaBuffer::Find( const ScAddress& rRefPos ) const
@@ -76,7 +75,7 @@ const ScTokenArray* SharedFormulaBuffer::Find( const ScAddress& rRefPos ) const
if (it == maTokenArrays.end())
return nullptr;
- return it->second;
+ return it->second.get();
}
sal_Int16 ExtSheetBuffer::Add( const OUString& rFPAN, const OUString& rTN, const bool bSWB )
diff --git a/sc/source/filter/inc/namebuff.hxx b/sc/source/filter/inc/namebuff.hxx
index 9daa50767fb9..a37b1fc7090f 100644
--- a/sc/source/filter/inc/namebuff.hxx
+++ b/sc/source/filter/inc/namebuff.hxx
@@ -63,7 +63,7 @@ inline bool StringHashEntry::operator ==( const StringHashEntry& r ) const
*/
class SharedFormulaBuffer : public ExcRoot
{
- typedef std::unordered_map<ScAddress, ScTokenArray*, ScAddressHashFunctor> TokenArraysType;
+ typedef std::unordered_map<ScAddress, std::unique_ptr<ScTokenArray>, ScAddressHashFunctor> TokenArraysType;
TokenArraysType maTokenArrays;
public:
More information about the Libreoffice-commits
mailing list