summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qpointer.h
Commit message (Collapse)AuthorAgeFilesLines
* QPointer: ensure construction from nullptr is constinit'ableMarc Mutz2023-10-051-0/+3
| | | | | | | | | | | | | | | | | | Construction from nullptr wasn't, before, because it was using the QPointer(T*) constructor, which cannot be constexpr. Add a constexpr QPointer(std::nullptr_t) constructor to enable this use-case. This requires to mark the (T*) constructor as Q_WEAK_OVERLOAD, otherwise legacy construction from a literal 0 would be ambiguous. No documentation changes needed, as the set of valid expressions (apart from constinit'ing) has not changed. Mention the nullptr ctor, though, without \since. Add a test to confirm that contruction from derived still works. Change-Id: If9d5281f6eca0c408a69f03fecba64a70a0c9cf0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPointer: mark the dereference operator noexcept, tooMarc Mutz2023-10-051-1/+1
| | | | | | | | | | The std types do that on their smart pointer types, so while it's not 100% correct (the function has the precondition !isNull()), follow upstream and mark this operator noexcept, too. Change-Id: Ie688598215afe2db4c0c26fcfa192fc7c8e22150 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QPointer: plaster API with noexceptMarc Mutz2023-10-051-9/+9
| | | | | | | | | | | | | | | | | | Mark almost all public functions of the clas as noexcept. Exceptions: - assignment and construction from T*: allocates an ExtraData in QObjectPrivate - dereference: the std types do that, but it's not 100% correct, so not proposed in this patch As a drive-by, remove pointless inline keywords. Change-Id: Ice91dfc429a4268546c0b8275da329be05f4edcb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QPointer: mark converting assignment operators noexceptMarc Mutz2023-10-051-2/+2
| | | | | | | | | | | All operations they perform (copy/move construction + swap()) are noexcept, so these functions should be noexcept, too. Amends 93019dc0dee3dd3d568775250e3fae8eda072850 and (FIXME)93019dc0dee3dd3d568775250e3fae8eda072850(ONCE MERGED). Change-Id: I9010f87f93ce3efcefd8b28d848a3eadd6e74542 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPointer: fix missing converting move-assignment operatorMarc Mutz2023-10-051-1/+8
| | | | | | | | | | | | | | | | | | | | | When 6c504f2519e1180dbcfd77d5bb08b0db9742eeaa added the conversion copy-constructor to fix an ambiguity, its commit message argued at length why a move-assignment conversion operator was not possible. But we actually have the existing converting move and copy ctors, so we can just use copy-and-swap and move-and-swap, so do that. As a drive-by, make the copy-assignment operator use copy-and-swap. [ChangeLog][QtCore][QPointer] Added missing converting move-assignment operator. This is forwards-compatible with Qt 6.6.0: compiling against 6.6.0 will just use the lvalue overload. This is BC and SC, forwards and backwards (inline code, and going back in time will just use the lvalue overload), so picking to 6.6. Pick-to: 6.6 Change-Id: Ibbefb0927c08d8c716a952c6c592a02df2a89008 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPointer: make swap(lhs, rhs) a hidden friendMarc Mutz2023-10-041-4/+3
| | | | | | | | This is how we like our free functions these days. Task-number: QTBUG-87973 Change-Id: I55b5f2674d24c7b76b8dc425a4f1c5520b8c1ec4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPointer: also provide a converting assignment operatorGiuseppe D'Angelo2023-09-231-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d026fad3d962eed0119351cd37f34490e09153fd added converting constructors for QPointer. This however made converting _assignments_ ambiguous, introducing a regression for users coming from Qt < 6.6. This code: QPointer<Base> base; QPointer<Derived> derived; base = derived; used to convert `derived` to `Derived *` (using the implicit conversion operator from `QPointer<Derived>` to `Derived *`), and then the assignment operator for `QPointer<Base>` that took a `Base *`. The introduction of the conversion constructor in 6.6 makes it possible to convert `QPointer<Derived>` to `QPointer<Base>`, and then fall back to the compiler-generated assignment operator for `QPointer<Base>`. The result is that the code above is now ambiguous and stops compiling. Fix this by adding a converting assignment operator for QPointer. I'm only adding the const-lvalue overload because the implementation requires going through the private QWeakPointer::assign helper. We cannot copy-assign or move-assign the inner QWeakPointer, as those assignments require lock()ing the QWeakPointer and that's not possible on a QObject-tracking QWeakPointer (but cf. QTBUG-117483). Assigning from a rvalue QPointer would mean calling assign() on the internal QWeakPointer _and_ clear the incoming QPointer, and that's strictly worse than the lvalue overload (where we just call assign()). Change-Id: I33fb2a22b3d5110284d78e3d7c6cc79a5b73b67b Pick-to: 6.6 6.6.0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Q(Shared|Weak|)Pointer: mark ctors [[nodiscard]]Marc Mutz2023-06-211-0/+4
| | | | | | | | | | | They're smart pointer classes, and QUIP-0019 says smart pointer class' constructors should be marked [[nodiscard]]. Pick-to: 6.6 Task-number: QTBUG-104164 Change-Id: I86b62571e64c2579b4151ffcb03d5bb32e0ac274 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QPointer: also make conversion to pointer-to-const workMarc Mutz2023-05-111-2/+4
| | | | | | | | | | | | | | | | | | | The QWeakPointer conversion SMFs cannot actually be used for QObject payloads, as, for unknown reasons (some comment about vtable this author doesn't understand), conversion goes through QSharedPointer, the creation of which throws the checkQObjectShared() warning and yields a nullptr. We need to continue to use the QWeakPointer(T*, bool) constructor the QPointer(T*) ctor also uses. It's high time we dissociated QPointer from QWeakPointer... Amends 5f28d367d999842a42fa0afa0d36d44ff61ea11d. Fixes: QTBUG-112464 Change-Id: I2f93843af3daf02323d77a4259eaa3745d8de3a8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make QPointer<T> constructible from QPointer<X>Marc Mutz2023-04-291-0/+10
| | | | | | | | | | | | QWeakPointer can do the same, so there's no reason to not allow it for QPointer. [ChangeLog][QtCore][QPointer] QPointer<T> can now be (move- and copy-)constructed from QPointer<X>. Fixes: QTBUG-112464 Change-Id: I77cf5d39974bf2b3ec849b4afc33e286e864821e Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Use SPDX license identifiersLucie Gérard2022-05-161-38/+2
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPEAndreas Buhr2020-11-301-1/+1
| | | | | | | | | | | | | | Q_MOVABLE_TYPE was conceived before C++ had move semantics. Now, with move semantics, its name is misleading. Q_RELOCATABLE_TYPE was introduced as a synonym to Q_MOVABLE_TYPE. Usage of Q_MOVABLE_TYPE is discouraged now. This patch replaces all usages of Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE in QtBase. As the two are synonymous, this patch should have no impact on users. Pick-to: 6.0 Change-Id: Ie653984363198c1aeb1f70f8e0fa189aae38eb5c Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Make QPointer comparisons hidden friendsAllan Sandfeld Jensen2020-10-231-40/+22
| | | | | | | Reduces ADL noise. Change-Id: Id0aa4b32b7bb6d70ed9106b949452d895d9060a9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Port Q_STATIC_ASSERT(_X) to static_assertGiuseppe D'Angelo2020-06-191-1/+1
| | | | | | | | | | | | | | | | | There is no reason for keep using our macro now that we have C++17. The macro itself is left in for the moment being, as well as its detection logic, because it's needed for C code (not everything supports C11 yet). A few more cleanups will arrive in the next few patches. Note that this is a mere search/replace; some places were using double braces to work around the presence of commas in a macro, no attempt has been done to fix those. tst_qglobal had just some minor changes to keep testing the macro. Change-Id: I1c1c397d9f3e63db3338842bf350c9069ea57639 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QPointer: add get()Giuseppe D'Angelo2020-06-091-0/+2
| | | | | | | | [ChangeLog][QtCore][QPointer] Added get() for STL compatibility. Change-Id: I84bf9d58cd92e1bc74f731c3e9002031045f8f5c Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QPointer: some simplificationsMarc Mutz2019-09-131-12/+3
| | | | | | | | | | | - don't write explicit meta functions, use std::conditional - = default the default ctor The class is already not trivially-copyable, so making the default ctor trivial doesn't change the ABI. Change-Id: I8e35bbbb35973c9ff8fc48dfbfc10061de4bfd30 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QWeakPointer: use an alternative work-round for internalData() usersMarc Mutz2019-06-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous work-around fails, probably because of cross-dependencies. E.g. we have this in QtScXml: In file included from /home/qt/work/install/include/QtCore/qsharedpointer.h:48:0, from ../../src/scxml/qscxmltabledata_p.h:55, from ../../src/scxml/qscxmltabledata.cpp:40: /home/qt/work/install/include/QtCore/qsharedpointer_impl.h:687:12: error: ‘QPointer’ does not name a type; did you mean ‘pointer’? friend QPointer<X> ^~~~~~~~ pointer /home/qt/work/install/include/QtCore/qsharedpointer_impl.h:689:23: error: ‘QSmartPointerConvertFunctor’ in namespace ‘QtPrivate’ does not name a template type friend QtPrivate::QSmartPointerConvertFunctor<QWeakPointer>; ^~~~~~~~~~~~~~~~~~~~~~~~~~~ To fix, grand friendship only to a non-template class with a templated static method that returns internalData(). This fixes most users, except in qmetatype.h, which does not include qsharedpointer.h. In order to use the non-template class in there, we need to delay its name lookup to instantiation time. We do this by artificially making it a dependent name, by using a class template that inherits from our befrieded class. Change-Id: I12b427f1fe9503df819ea5436d780972d6402e68 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Cleanup the fallout of QWeakPointer::data() deprecationGiuseppe D'Angelo2019-05-171-2/+2
| | | | | | | | | | | | | | | | | There are still users of QWeakPointer::data(), which under certain compilers will make headersclean fail. So this patch: * ports data() to a private internalData() function and calls it from all the usage points; * adds cleanup notes for Qt 6, once some of the deprecated machinery around storing unmanaged QObjects in QWeakPointers can get removed. Change-Id: Id3bcbd23374c18a2026861c08a4dcba1670673c1 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Deprecate QWeakPointer::data()Giuseppe D'Angelo2019-05-161-1/+1
| | | | | | | | | | | It's a dangerous API to have. Upgrade to a shared pointer if accessing the raw pointer is required. [ChangeLog][QtCore][QWeakPointer] The data() function has been deprecated. Change-Id: Ie5d34f4fb500b3cfa14d2c0b1b08484df072129c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QPointer: fix swap()Giuseppe D'Angelo2019-05-131-1/+5
| | | | | | | | | Make it noexcept and add an overload as a free function. [ChangeLog][QtCore][QPointer] Added a free swap function. Change-Id: I50744b9bae6a52db71b2da39e310619b3a0d6510 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Replace custom type traits with std one'sKai Koehne2016-11-081-1/+1
| | | | | | | | | | | | | | | | | | Remove most type traits from qtypetraits.h, but keep the custom implementation of is_signed/is_unsigned. This gets rid of BSD-3 licensed code from Google in a public header (hugh!). The custom implementations for is_signed/is_unsigned are kept because the implementations in gcc's standard headers do not work as we expect for enums - both is_signed and is_unsigned always returns false there - see also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59027 [ChangeLog][QtCore][General] Qt now relies on type traits from the C++ standard library. Change-Id: I3f2188b46949f04ca4482a6ac9afd3482103f0e1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Updated license headersJani Heikkinen2016-01-151-14/+20
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Add #ifdef to avoid qdoc missing function warningLouai Al-Khanji2015-08-251-0/+5
| | | | | Change-Id: I1cba5543a519030a5b06bc80b6fd7410327c86c8 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* QPointer: remove user-declared empty destructorMarc Mutz2015-07-131-1/+1
| | | | | | | | It prevents the compiler from synthesizing move assignment and move constructor. Change-Id: I864d143d5a6233e45f3f2fc343a147db89559f33 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPointer: add member-swapMarc Mutz2015-06-171-0/+2
| | | | | Change-Id: I5704badc86f98e549c586656ec8df3915632ce15 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QPointer: add a static assertion to help the user when using a wrong ↵Giuseppe D'Angelo2015-04-111-0/+3
| | | | | | | | | | | template type Sometimes people mistype QPointer<Foo *> when they actually must use QPointer<Foo>, add a static assertion for an improved error message (rather than the usual weird template mess). Change-Id: Ic77e3e752ac1906b94f3432eaededf0f7a2737be Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Make it possible to use QPointer<const T>Stephen Kelly2013-02-131-34/+22
| | | | | | | | | | | | | This is possible with QWeakPointer, so allow it for migrating code too. In the process, replace the QPointerBase with a member variable for simplicity. The functionality of the QPointerBase is replaced by a TypeSelector template. Change-Id: I3b4c77bdeda2b863cc33e84a3da8a25bae928c8c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Remove dead code from QPointer.Stephen Kelly2013-02-111-40/+0
| | | | | | | | | | | The compilers checked here are not supported in Qt 5. Additionally, the QSharedPointer implementation has similar operators without such guards, so in reality these compilers may not have worked with Qt 4.6+ either. Change-Id: I208f3cde7c689770ae15245a555e3a58b749a8a3 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QT_{BEGIN,END}_HEADER macro usageSergio Ahumada2013-01-291-4/+0
| | | | | | | | | | | The macro was made empty in ba3dc5f3b56d1fab6fe37fe7ae08096d7dc68bcb and is no longer necessary or used. Discussed-on: http://lists.qt-project.org/pipermail/development/2013-January/009284.html Change-Id: Id2bb2e2cabde059305d4af5f12593344ba30f001 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Replace macro qdoc with Q_QDOCDebao Zhang2013-01-081-1/+1
| | | | | | | | Both qdoc and Q_QDOC are used in source code, which looks not good. Change-Id: I4f3a71670278b0758d92bfa5db086a07e1b1acfd Reviewed-by: hjk <qthjk@ovi.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Fix QPointer qdoc errorsLars Knoll2012-08-151-1/+1
| | | | | Change-Id: I54082a87f076aa511329cfb7a6ed6ecabcfb40f7 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Add some internal API for extracting a QSharedPointer<T> from QVariant.Stephen Kelly2012-06-201-0/+8
| | | | | | | | | | | | | The T must be derived from QObject, or it will fail to compile. This will allow scripting or other 'wrapping' and runtime environments like QtDeclarative to handle QSharedPointers to types derived from QObject properly. A QSharedPointer<T> can be inserted into a QVariant, and where T derives from QObject, a QSharedPointer<QObject> can be extracted from the QVariant, and its properties are then accessible. Change-Id: I68d6d89aceceb019267bd7301baa2047f9c09b90 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Deprecate the use of QWeakPointer to track QObjects.Stephen Kelly2012-06-071-2/+2
| | | | | | | | | | | | | | The main problem with using QWeakPointer to track QObjects is that it has API to convert to QSharedPointer, which is undefined behavior. There is no need to overload the meaning of QWeakPointer with QObject tracking. QPointer is more suitable and should be used instead. Because QPointer is implemented in terms of QWeakPointer, we need to add some overloads which are not deprecated. Change-Id: If0333e4800c9fd277629cc69185c9ca3e4e7e81d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add clear() to QPointer for QWeakPointer compatibility.Stephen Kelly2012-06-011-0/+5
| | | | | Change-Id: I9efc162bf56775c7ebcff4e3b79a997edc4ceaeb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPointer: some optimisationsMarc Mutz2012-03-221-18/+40
| | | | | | | | | | | | | | | | | | Implement QPointer in terms of QPointerBase, a non-template roughly the same as QPointer<QObject>, to reduce the amount of template code being generated. Also mark QPointer as movable, fake an isNull() for qdoc, and remove qpointer.h's content from QT_NO_QOBJECT builds (some indirect include hits the missing QWeakPointer(QObject*) constructor when bootstrapping; worked before b/c QPointer is a template; QPointerBase isn't, though). Change-Id: I657826601f570f954d80b84bb0334dd3a7452859 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Un-deprecate QPointer per mailing list discussion.Robin Burchell2012-03-151-5/+1
| | | | | | | | | | Now that QPointer is implemented in an efficient manner, there is really no need to avoid it, deprecating it just adds a large amount of churn. Change-Id: I32116faf14c3b07631d59ba9585f9ce422531646 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove use of QT_MODULE from libraryGunnar Sletta2012-01-251-1/+0
| | | | | | | | | | These defines were there to aid in the commercial licensing scheme we used long ago, and are no longer needed. Keep a QT_MODULE(x) define so other modules continue compiling. Change-Id: I8fd76cd5270df8f14aee746b6cf32ebf7c23fec7 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove QMetaObject guards and deprecate QPointer.Bradley T. Hughes2011-12-101-17/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QWeakPointer is superior and preferred. Remove QMetaObject::addGuard(), QMetaObject::changeGuard(), QMetaObject::removeGuard(), and QObjectPrivate::clearGuards(). Implement QPointer using QWeakPointer<T> instead. This changes the behavior of QPointer in 2 ways: - During destruction of a QWidget. Previously, the destructor of QWidget would reset all QPointers so that they would return zero when destroying children. Update tst_QPointer to account for this change. - When constructing a QSharedPointer to take ownership of an object after a QPointer is already tracking the object. Previously, the shared pointer construction would not be affected by the QPointer, but now that QPointer is implemented using QWeakPoiner, constructing the QSharedPointer will cause an abort(). Fix tst_QSharedPointer by removing the use of QPointer in the objectCast() test. These behavior changes are documented in the QPointer class documentation and in the changes file. Change-Id: I92d0276219c076ece7bcb60f6e1b9120ce4f5747 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Update licenseheader text in source files for qtbase Qt moduleJyri Tahtela2011-05-241-17/+17
| | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* Initial import from the monolithic Qt.Qt by Nokia2011-04-271-0/+168
This is the beginning of revision history for this module. If you want to look at revision history older than this, please refer to the Qt Git wiki for how to use Git history grafting. At the time of writing, this wiki is located here: http://qt.gitorious.org/qt/pages/GitIntroductionWithQt If you have already performed the grafting and you don't see any history beyond this commit, try running "git log" with the "--follow" argument. Branched from the monolithic repo, Qt master branch, at commit 896db169ea224deb96c59ce8af800d019de63f12