From e3a8e242ada146b1ec796424696e6c3964ab36dc Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sun, 9 Mar 2014 11:46:26 +0100 Subject: QWeakPointer: add lock() for std::weak_ptr compatibility [ChangeLog][QtCore][QWeakPointer] Added lock() method for std::weak_ptr compatibility. Change-Id: I0851d91c51f5a4f04a855a1d8082234ce38396b4 Reviewed-by: Thiago Macieira --- src/corelib/tools/qsharedpointer.cpp | 9 +++++++++ src/corelib/tools/qsharedpointer.h | 1 + src/corelib/tools/qsharedpointer_impl.h | 2 ++ 3 files changed, 12 insertions(+) (limited to 'src/corelib') diff --git a/src/corelib/tools/qsharedpointer.cpp b/src/corelib/tools/qsharedpointer.cpp index a610fc46e5..19c88fcf1c 100644 --- a/src/corelib/tools/qsharedpointer.cpp +++ b/src/corelib/tools/qsharedpointer.cpp @@ -893,6 +893,15 @@ \sa QSharedPointer::QSharedPointer() */ +/*! + \fn QSharedPointer QWeakPointer::lock() const + \since 5.4 + + Same as toStrongRef(). + + This function is provided for API compatibility with std::weak_ptr. +*/ + /*! \fn void QWeakPointer::clear() diff --git a/src/corelib/tools/qsharedpointer.h b/src/corelib/tools/qsharedpointer.h index 34b4bfbb12..ea9b4fbf27 100644 --- a/src/corelib/tools/qsharedpointer.h +++ b/src/corelib/tools/qsharedpointer.h @@ -126,6 +126,7 @@ public: void clear(); QSharedPointer toStrongRef() const; + QSharedPointer lock() const; }; template bool operator==(const QSharedPointer &ptr1, const QSharedPointer &ptr2); diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h index c077b84492..e59efce7ae 100644 --- a/src/corelib/tools/qsharedpointer_impl.h +++ b/src/corelib/tools/qsharedpointer_impl.h @@ -639,6 +639,8 @@ public: inline void clear() { *this = QWeakPointer(); } inline QSharedPointer toStrongRef() const { return QSharedPointer(*this); } + // std::weak_ptr compatibility: + inline QSharedPointer lock() const { return toStrongRef(); } #if defined(QWEAKPOINTER_ENABLE_ARROW) inline T *operator->() const { return data(); } -- cgit v1.2.3