aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2021-05-13 01:08:23 +0200
committerIvan Komissarov <ABBAPOH@gmail.com>2021-05-13 16:27:05 +0000
commit1cd7ba74dc253a111ab3ff115547842c90421b94 (patch)
tree1680f3a8abeac830ef0c1b0100145823ce3a5e46 /src
parent2ca976dc2c9025ce41ed785b9b2c9f1249c81526 (diff)
Do not use manual memory management for d-pointers
Change-Id: Ifde88ede2f9ac65f2406ef62b4115534f6fe7135 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/app/qbs/parser/commandlineparser.cpp12
-rw-r--r--src/app/qbs/parser/commandlineparser.h4
-rw-r--r--src/lib/corelib/api/runenvironment.cpp9
-rw-r--r--src/lib/corelib/api/runenvironment.h4
-rw-r--r--src/lib/corelib/generators/generator.cpp7
-rw-r--r--src/lib/corelib/generators/generator.h4
-rw-r--r--src/lib/corelib/jsextensions/propertylist_darwin.h4
-rw-r--r--src/lib/corelib/jsextensions/propertylist_darwin.mm7
-rw-r--r--src/lib/corelib/logging/ilogsink.cpp7
-rw-r--r--src/lib/corelib/logging/ilogsink.h4
-rw-r--r--src/lib/corelib/tools/profiling.cpp5
-rw-r--r--src/lib/corelib/tools/profiling.h4
-rw-r--r--src/lib/corelib/tools/settingsmodel.cpp8
-rw-r--r--src/lib/corelib/tools/settingsmodel.h4
-rw-r--r--src/lib/msbuild/io/msbuildprojectwriter.cpp9
-rw-r--r--src/lib/msbuild/io/msbuildprojectwriter.h4
16 files changed, 44 insertions, 52 deletions
diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp
index 052f6b92f..5d3c14ebb 100644
--- a/src/app/qbs/parser/commandlineparser.cpp
+++ b/src/app/qbs/parser/commandlineparser.cpp
@@ -111,14 +111,9 @@ public:
bool logTime;
};
-CommandLineParser::CommandLineParser() : d(nullptr)
-{
-}
+CommandLineParser::CommandLineParser() = default;
-CommandLineParser::~CommandLineParser()
-{
- delete d;
-}
+CommandLineParser::~CommandLineParser() = default;
void CommandLineParser::printHelp() const
{
@@ -309,8 +304,7 @@ QList<QVariantMap> CommandLineParser::buildConfigurations() const
bool CommandLineParser::parseCommandLine(const QStringList &args)
{
- delete d;
- d = new CommandLineParserPrivate;
+ d = std::make_unique<CommandLineParserPrivate>();
d->commandLine = args;
try {
d->doParse();
diff --git a/src/app/qbs/parser/commandlineparser.h b/src/app/qbs/parser/commandlineparser.h
index d47657b16..70586b2d4 100644
--- a/src/app/qbs/parser/commandlineparser.h
+++ b/src/app/qbs/parser/commandlineparser.h
@@ -44,6 +44,8 @@
#include <QtCore/qstringlist.h>
#include <QtCore/qvariant.h>
+#include <memory>
+
namespace qbs {
class BuildOptions;
class CleanOptions;
@@ -90,7 +92,7 @@ public:
private:
class CommandLineParserPrivate;
- CommandLineParserPrivate *d;
+ std::unique_ptr<CommandLineParserPrivate> d;
};
} // namespace qbs
diff --git a/src/lib/corelib/api/runenvironment.cpp b/src/lib/corelib/api/runenvironment.cpp
index 8cea759a8..f54914964 100644
--- a/src/lib/corelib/api/runenvironment.cpp
+++ b/src/lib/corelib/api/runenvironment.cpp
@@ -109,15 +109,12 @@ RunEnvironment::RunEnvironment(const ResolvedProductPtr &product,
const TopLevelProjectConstPtr &project, const InstallOptions &installOptions,
const QProcessEnvironment &environment, const QStringList &setupRunEnvConfig,
Settings *settings, const Logger &logger)
- : d(new RunEnvironmentPrivate(product, project, installOptions, environment, setupRunEnvConfig,
- settings, logger))
+ : d(std::make_unique<RunEnvironmentPrivate>(product, project, installOptions, environment,
+ setupRunEnvConfig, settings, logger))
{
}
-RunEnvironment::~RunEnvironment()
-{
- delete d;
-}
+RunEnvironment::~RunEnvironment() = default;
int RunEnvironment::runShell(ErrorInfo *error)
{
diff --git a/src/lib/corelib/api/runenvironment.h b/src/lib/corelib/api/runenvironment.h
index b95bfbf85..4a967ba63 100644
--- a/src/lib/corelib/api/runenvironment.h
+++ b/src/lib/corelib/api/runenvironment.h
@@ -46,6 +46,8 @@
#include <QtCore/qglobal.h>
#include <QtCore/qstringlist.h>
+#include <memory>
+
QT_BEGIN_NAMESPACE
class QProcess;
class QProcessEnvironment;
@@ -95,7 +97,7 @@ private:
const QProcessEnvironment getBuildEnvironment() const;
class RunEnvironmentPrivate;
- RunEnvironmentPrivate * const d;
+ const std::unique_ptr<RunEnvironmentPrivate> d;
};
} // namespace qbs
diff --git a/src/lib/corelib/generators/generator.cpp b/src/lib/corelib/generators/generator.cpp
index 90bebdcaa..d3cdce412 100644
--- a/src/lib/corelib/generators/generator.cpp
+++ b/src/lib/corelib/generators/generator.cpp
@@ -58,14 +58,11 @@ public:
};
ProjectGenerator::ProjectGenerator()
- : d(new ProjectGeneratorPrivate)
+ : d(std::make_unique<ProjectGeneratorPrivate>())
{
}
-ProjectGenerator::~ProjectGenerator()
-{
- delete d;
-}
+ProjectGenerator::~ProjectGenerator() = default;
static QString _configurationName(const Project &project)
{
diff --git a/src/lib/corelib/generators/generator.h b/src/lib/corelib/generators/generator.h
index 775469f18..a7cc56b51 100644
--- a/src/lib/corelib/generators/generator.h
+++ b/src/lib/corelib/generators/generator.h
@@ -45,6 +45,8 @@
#include <QtCore/qlist.h>
#include <QtCore/qstring.h>
+#include <memory>
+
namespace qbs {
class ProjectGeneratorPrivate;
@@ -89,7 +91,7 @@ private:
QVariantMap buildConfiguration(const Project &project) const;
QStringList buildConfigurationCommandLine(const Project &project) const;
- ProjectGeneratorPrivate *d;
+ const std::unique_ptr<ProjectGeneratorPrivate> d;
};
} // namespace qbs
diff --git a/src/lib/corelib/jsextensions/propertylist_darwin.h b/src/lib/corelib/jsextensions/propertylist_darwin.h
index 75900b144..279309681 100644
--- a/src/lib/corelib/jsextensions/propertylist_darwin.h
+++ b/src/lib/corelib/jsextensions/propertylist_darwin.h
@@ -50,6 +50,8 @@
#include <QtScript/qscriptable.h>
#include <QtScript/qscriptvalue.h>
+#include <memory>
+
namespace qbs {
namespace Internal {
@@ -78,7 +80,7 @@ public:
Q_INVOKABLE QString toXMLString() const;
Q_INVOKABLE QString toJSON(const QString &style = QString()) const;
private:
- PropertyListPrivate *d;
+ const std::unique_ptr<PropertyListPrivate> d;
};
} // namespace Internal
diff --git a/src/lib/corelib/jsextensions/propertylist_darwin.mm b/src/lib/corelib/jsextensions/propertylist_darwin.mm
index 7a08b5e9f..caf9feb3e 100644
--- a/src/lib/corelib/jsextensions/propertylist_darwin.mm
+++ b/src/lib/corelib/jsextensions/propertylist_darwin.mm
@@ -94,13 +94,10 @@ PropertyListPrivate::PropertyListPrivate()
{
}
-PropertyList::~PropertyList()
-{
- delete d;
-}
+PropertyList::~PropertyList() = default;
PropertyList::PropertyList(QScriptContext *context)
-: d(new PropertyListPrivate)
+ : d(std::make_unique<PropertyListPrivate>())
{
Q_UNUSED(context);
Q_ASSERT(thisObject().engine() == engine());
diff --git a/src/lib/corelib/logging/ilogsink.cpp b/src/lib/corelib/logging/ilogsink.cpp
index 4eb930cbf..20cf52bcd 100644
--- a/src/lib/corelib/logging/ilogsink.cpp
+++ b/src/lib/corelib/logging/ilogsink.cpp
@@ -82,14 +82,11 @@ public:
std::mutex mutex;
};
-ILogSink::ILogSink() : d(new ILogSinkPrivate)
+ILogSink::ILogSink() : d(std::make_unique<ILogSinkPrivate>())
{
}
-ILogSink::~ILogSink()
-{
- delete d;
-}
+ILogSink::~ILogSink() = default;
void ILogSink::setLogLevel(LoggerLevel level)
{
diff --git a/src/lib/corelib/logging/ilogsink.h b/src/lib/corelib/logging/ilogsink.h
index 4b25aa7b8..0a055abc1 100644
--- a/src/lib/corelib/logging/ilogsink.h
+++ b/src/lib/corelib/logging/ilogsink.h
@@ -43,6 +43,8 @@
#include <QtCore/qstring.h>
+#include <memory>
+
namespace qbs {
class ErrorInfo;
@@ -83,7 +85,7 @@ private:
const QString &tag) = 0;
class ILogSinkPrivate;
- ILogSinkPrivate * const d;
+ const std::unique_ptr<ILogSinkPrivate> d;
};
} // namespace qbs
diff --git a/src/lib/corelib/tools/profiling.cpp b/src/lib/corelib/tools/profiling.cpp
index 7e3559b54..db64a73c6 100644
--- a/src/lib/corelib/tools/profiling.cpp
+++ b/src/lib/corelib/tools/profiling.cpp
@@ -61,7 +61,7 @@ TimedActivityLogger::TimedActivityLogger(const Logger &logger, const QString &ac
{
if (!enabled)
return;
- d = new TimedActivityLoggerPrivate;
+ d = std::make_unique<TimedActivityLoggerPrivate>();
d->logger = logger;
d->activity = activity;
d->logger.qbsLog(LoggerInfo, true) << Tr::tr("Starting activity '%2'.").arg(activity);
@@ -75,8 +75,7 @@ void TimedActivityLogger::finishActivity()
const QString timeString = elapsedTimeString(d->timer.elapsed());
d->logger.qbsLog(LoggerInfo, true)
<< Tr::tr("Activity '%2' took %3.").arg(d->activity, timeString);
- delete d;
- d = nullptr;
+ d.reset();
}
TimedActivityLogger::~TimedActivityLogger()
diff --git a/src/lib/corelib/tools/profiling.h b/src/lib/corelib/tools/profiling.h
index 89f862ff9..c6fc9ede7 100644
--- a/src/lib/corelib/tools/profiling.h
+++ b/src/lib/corelib/tools/profiling.h
@@ -42,6 +42,8 @@
#include <QtCore/qelapsedtimer.h>
+#include <memory>
+
QT_BEGIN_NAMESPACE
class QString;
QT_END_NAMESPACE
@@ -61,7 +63,7 @@ public:
private:
class TimedActivityLoggerPrivate;
- TimedActivityLoggerPrivate *d;
+ std::unique_ptr<TimedActivityLoggerPrivate> d;
};
class AccumulatingTimer
diff --git a/src/lib/corelib/tools/settingsmodel.cpp b/src/lib/corelib/tools/settingsmodel.cpp
index 7192ef45f..7b75cc050 100644
--- a/src/lib/corelib/tools/settingsmodel.cpp
+++ b/src/lib/corelib/tools/settingsmodel.cpp
@@ -123,17 +123,15 @@ public:
};
SettingsModel::SettingsModel(const QString &settingsDir, Settings::Scope scope, QObject *parent)
- : QAbstractItemModel(parent), d(new SettingsModelPrivate)
+ : QAbstractItemModel(parent),
+ d(std::make_unique<SettingsModelPrivate>())
{
d->settings = std::make_unique<qbs::Settings>(settingsDir);
d->settings->setScopeForWriting(scope);
d->readSettings();
}
-SettingsModel::~SettingsModel()
-{
- delete d;
-}
+SettingsModel::~SettingsModel() = default;
void SettingsModel::reload()
{
diff --git a/src/lib/corelib/tools/settingsmodel.h b/src/lib/corelib/tools/settingsmodel.h
index 1bd59737c..63651d300 100644
--- a/src/lib/corelib/tools/settingsmodel.h
+++ b/src/lib/corelib/tools/settingsmodel.h
@@ -46,6 +46,8 @@
#include <QtCore/qabstractitemmodel.h>
#include <QtCore/qvariant.h>
+#include <memory>
+
namespace qbs {
class QBS_EXPORT SettingsModel : public QAbstractItemModel
@@ -81,7 +83,7 @@ public:
private:
class SettingsModelPrivate;
- SettingsModelPrivate * const d;
+ const std::unique_ptr<SettingsModelPrivate> d;
};
} // namespace qbs
diff --git a/src/lib/msbuild/io/msbuildprojectwriter.cpp b/src/lib/msbuild/io/msbuildprojectwriter.cpp
index aaab11aa6..986458a7f 100644
--- a/src/lib/msbuild/io/msbuildprojectwriter.cpp
+++ b/src/lib/msbuild/io/msbuildprojectwriter.cpp
@@ -86,23 +86,20 @@ public:
};
MSBuildProjectWriter::MSBuildProjectWriter(std::ostream *device)
- : d(new MSBuildProjectWriterPrivate)
+ : d(std::make_unique<MSBuildProjectWriterPrivate>())
{
d->device = device;
d->writer = std::make_unique<QXmlStreamWriter>(&d->buffer);
d->writer->setAutoFormatting(true);
}
-MSBuildProjectWriter::~MSBuildProjectWriter()
-{
- delete d;
-}
+MSBuildProjectWriter::~MSBuildProjectWriter() = default;
bool MSBuildProjectWriter::write(const MSBuildProject *project)
{
d->buffer.clear();
d->writer->writeStartDocument();
- project->accept(d);
+ project->accept(d.get());
d->writer->writeEndDocument();
if (d->writer->hasError())
return false;
diff --git a/src/lib/msbuild/io/msbuildprojectwriter.h b/src/lib/msbuild/io/msbuildprojectwriter.h
index cfe6beb7b..9feb347c5 100644
--- a/src/lib/msbuild/io/msbuildprojectwriter.h
+++ b/src/lib/msbuild/io/msbuildprojectwriter.h
@@ -35,6 +35,8 @@
#include <QtCore/qglobal.h>
+#include <memory>
+
namespace qbs {
class MSBuildProject;
@@ -50,7 +52,7 @@ public:
bool write(const MSBuildProject *project);
private:
- MSBuildProjectWriterPrivate *d;
+ const std::unique_ptr<MSBuildProjectWriterPrivate> d;
};
} // namespace qbs