summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2018-07-11 18:23:37 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2018-08-13 14:15:44 +0000
commitd283d81c1c65b945662f90403f58124cb7fb8f47 (patch)
tree682f843aefff1e16723903b5995f073fee42e269 /src
parentc39d2ab482c1f11e30d7a80f92d65c4982a12703 (diff)
Supply locale to QCollatorPrivate via its constructor
Both places that new'd it were then setting its locale themselves; they might as well do it tidily by passing it to the constructor. There's also no need to cleanup() in the constructor; every back-end is a no-op when collator has its initial value. Tidied up the class declaration in the process: * moved {con,de}structor to be first methods * comment on the two methods back-ends provide Change-Id: I041669637935e68141e002156552af8b475ba36e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/tools/qcollator.cpp6
-rw-r--r--src/corelib/tools/qcollator_p.h9
2 files changed, 6 insertions, 9 deletions
diff --git a/src/corelib/tools/qcollator.cpp b/src/corelib/tools/qcollator.cpp
index a198208966..1cf223aae6 100644
--- a/src/corelib/tools/qcollator.cpp
+++ b/src/corelib/tools/qcollator.cpp
@@ -77,9 +77,8 @@ QT_BEGIN_NAMESPACE
\sa setLocale()
*/
QCollator::QCollator(const QLocale &locale)
- : d(new QCollatorPrivate)
+ : d(new QCollatorPrivate(locale))
{
- d->locale = locale;
d->init();
}
@@ -158,8 +157,7 @@ QCollator &QCollator::operator=(const QCollator &other)
void QCollator::detach()
{
if (d->ref.load() != 1) {
- QCollatorPrivate *x = new QCollatorPrivate;
- x->locale = d->locale;
+ QCollatorPrivate *x = new QCollatorPrivate(d->locale);
if (!d->ref.deref())
delete d;
d = x;
diff --git a/src/corelib/tools/qcollator_p.h b/src/corelib/tools/qcollator_p.h
index 71095f845d..18a43f0de6 100644
--- a/src/corelib/tools/qcollator_p.h
+++ b/src/corelib/tools/qcollator_p.h
@@ -104,19 +104,18 @@ public:
CollatorType collator = 0;
+ QCollatorPrivate(const QLocale &locale) : locale(locale) {}
+ ~QCollatorPrivate() { cleanup(); }
+
void clear() {
cleanup();
collator = 0;
}
+ // Implemented by each back-end, in its own way:
void init();
void cleanup();
- QCollatorPrivate()
- { cleanup(); }
-
- ~QCollatorPrivate() { cleanup(); }
-
private:
Q_DISABLE_COPY(QCollatorPrivate)
};