diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-05-04 22:06:36 +0200 |
---|---|---|
committer | Olivier Goffart <olivier.goffart@nokia.com> | 2011-05-10 12:54:56 +0200 |
commit | 202df2ae8914c3424c7a8c84303e70c37e62646d (patch) | |
tree | 136f09e5930baff3952c088395d3f90bbe068eda /src | |
parent | f38a639a419fda0024659bdc6c03e0b6250188f7 (diff) |
don't crash in QProcessEnvironment::systemEnvironment()
as the implementations moved to platform-specific files, the
QSharedDataPointer<QProcessEnvironmentPrivate>::detach() specialization
needs to go to the private header.
Reviewed-by: thiago
(cherry picked from commit c79246683a5033f605acd59d1c37d68381383a06)
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/io/qprocess.cpp | 12 | ||||
-rw-r--r-- | src/corelib/io/qprocess_p.h | 12 |
2 files changed, 12 insertions, 12 deletions
diff --git a/src/corelib/io/qprocess.cpp b/src/corelib/io/qprocess.cpp index 9ce9fd855c..c2234e9667 100644 --- a/src/corelib/io/qprocess.cpp +++ b/src/corelib/io/qprocess.cpp @@ -144,18 +144,6 @@ QT_BEGIN_NAMESPACE \sa QProcess, QProcess::systemEnvironment(), QProcess::setProcessEnvironment() */ -template<> void QSharedDataPointer<QProcessEnvironmentPrivate>::detach() -{ - if (d && d->ref == 1) - return; - QProcessEnvironmentPrivate *x = (d ? new QProcessEnvironmentPrivate(*d) - : new QProcessEnvironmentPrivate); - x->ref.ref(); - if (d && !d->ref.deref()) - delete d; - d = x; -} - QStringList QProcessEnvironmentPrivate::toList() const { QStringList result; diff --git a/src/corelib/io/qprocess_p.h b/src/corelib/io/qprocess_p.h index f70579bd17..54d49361be 100644 --- a/src/corelib/io/qprocess_p.h +++ b/src/corelib/io/qprocess_p.h @@ -182,6 +182,18 @@ public: void insert(const QProcessEnvironmentPrivate &other); }; +template<> Q_INLINE_TEMPLATE void QSharedDataPointer<QProcessEnvironmentPrivate>::detach() +{ + if (d && d->ref == 1) + return; + QProcessEnvironmentPrivate *x = (d ? new QProcessEnvironmentPrivate(*d) + : new QProcessEnvironmentPrivate); + x->ref.ref(); + if (d && !d->ref.deref()) + delete d; + d = x; +} + class QProcessPrivate : public QIODevicePrivate { public: |