summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--connectivity/source/drivers/macab/MacabHeader.cxx10
-rw-r--r--connectivity/source/drivers/macab/MacabRecord.cxx5
-rw-r--r--connectivity/source/drivers/macab/MacabRecord.hxx6
3 files changed, 12 insertions, 9 deletions
diff --git a/connectivity/source/drivers/macab/MacabHeader.cxx b/connectivity/source/drivers/macab/MacabHeader.cxx
index 62e2875ef77a..a674dad8f359 100644
--- a/connectivity/source/drivers/macab/MacabHeader.cxx
+++ b/connectivity/source/drivers/macab/MacabHeader.cxx
@@ -25,6 +25,7 @@
#include <math.h>
#include <com/sun/star/sdbc/DataType.hpp>
#include <connectivity/dbconversion.hxx>
+#include <o3tl/make_unique.hxx>
using namespace connectivity::macab;
using namespace com::sun::star::sdbc;
@@ -36,7 +37,7 @@ MacabHeader::MacabHeader(const sal_Int32 _size, macabfield **_fields)
{
sal_Int32 i;
size = _size;
- fields = new macabfield *[size];
+ fields = o3tl::make_unique<macabfield *[]>(size);
for(i = 0; i < size; i++)
{
if(_fields[i] == nullptr)
@@ -86,7 +87,7 @@ void MacabHeader::operator+= (const MacabHeader *r)
{
sal_Int32 i;
size = rSize;
- fields = new macabfield *[size];
+ fields = o3tl::make_unique<macabfield *[]>(size);
for(i = 0; i < size; i++)
{
fields[i] = r->copy(i);
@@ -132,9 +133,8 @@ void MacabHeader::operator+= (const MacabHeader *r)
}
releaseFields();
- delete [] fields;
size += numAdded;
- fields = newFields;
+ fields.reset(newFields);
}
}
}
@@ -230,7 +230,7 @@ macabfield **MacabHeader::sortRecord(const sal_Int32 _start, const sal_Int32 _le
}
if(_length == size)
{
- fields = sorted;
+ fields.reset(sorted);
}
delete firstHalf;
delete lastHalf;
diff --git a/connectivity/source/drivers/macab/MacabRecord.cxx b/connectivity/source/drivers/macab/MacabRecord.cxx
index d2195a823379..5cb71beff854 100644
--- a/connectivity/source/drivers/macab/MacabRecord.cxx
+++ b/connectivity/source/drivers/macab/MacabRecord.cxx
@@ -21,6 +21,7 @@
#include "MacabRecord.hxx"
#include "macabutilities.hxx"
#include <com/sun/star/util/DateTime.hpp>
+#include <o3tl/make_unique.hxx>
#include <premac.h>
#include <Carbon/Carbon.h>
@@ -43,7 +44,7 @@ MacabRecord::MacabRecord()
MacabRecord::MacabRecord(const sal_Int32 _size)
{
size = _size;
- fields = new macabfield *[size];
+ fields = o3tl::make_unique<macabfield *[]>(size);
sal_Int32 i;
for(i = 0; i < size; i++)
fields[i] = nullptr;
@@ -61,8 +62,6 @@ MacabRecord::~MacabRecord()
fields[i] = nullptr;
}
}
- delete [] fields;
- fields = nullptr;
}
diff --git a/connectivity/source/drivers/macab/MacabRecord.hxx b/connectivity/source/drivers/macab/MacabRecord.hxx
index 5d0cb1dfa5e7..e677611bdec8 100644
--- a/connectivity/source/drivers/macab/MacabRecord.hxx
+++ b/connectivity/source/drivers/macab/MacabRecord.hxx
@@ -20,6 +20,10 @@
#ifndef INCLUDED_CONNECTIVITY_SOURCE_DRIVERS_MACAB_MACABRECORD_HXX
#define INCLUDED_CONNECTIVITY_SOURCE_DRIVERS_MACAB_MACABRECORD_HXX
+#include <sal/config.h>
+
+#include <memory>
+
#include <sal/types.h>
#include <osl/diagnose.h>
#include <rtl/ustring.hxx>
@@ -46,7 +50,7 @@ namespace connectivity
class MacabRecord{
protected:
sal_Int32 size;
- macabfield **fields;
+ std::unique_ptr<macabfield *[]> fields;
protected:
void releaseFields();
public: