summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
Commit message (Collapse)AuthorAgeFilesLines
* Disable hash seeding for bootstrapped toolsThiago Macieira2014-05-211-4/+4
| | | | | | | | | | | | | | | | | | Any bootstrapped tool is a development tool, by definition. So the effects of seeding the hash with a random number can cause the same source input to produce different binary results, which can throw some caching tools into disarray (like the Open Build System). There should be minimal fall out from the reduced protection against DoS. Since those are only development tools, "specially crafted" input implies the developer is DoS'ing him/herself. Note: the change to qhash.cpp applies to moc and rcc, which are always bootstrapped. Change-Id: I061ab52036e40627c0703f1bf881455cbf848f43 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
* Fix minor coding style issues in new code in QtCoreThiago Macieira2014-05-192-2/+4
| | | | | | | Change-Id: I444daf8e81257f55746f9d32fbcb60a2e1b69444 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Call tzset() before localtime_r() as the docs say.Gunnar Sletta2014-05-161-0/+3
| | | | | | | | Without it, one might run the risk of QDateTime::currentDateTime() returning an invalid QDateTime the first time after changing timezone. Change-Id: I3efb04d41e7fe4685f6cc5fb41b68424eb4b9eb8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-05-141-1/+1
|\ | | | | | | Change-Id: If1abbe7810ea43ae750db91066f9f579c79b2289
| * Fix an off-by-4 error in qHash with CRC32Thiago Macieira2014-05-131-1/+1
| | | | | | | | | | | | | | | | | | I tested only the 64-bit build. The 32-bit build was reading garbage past the end of the strings in some cases. Change-Id: If6d239754e16a17cc4e8bb71e2b7778429dfa7ba Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | QDateTime: Fix sign handling in the timezone offset writerDaniel Seither2014-05-081-1/+1
| | | | | | | | | | | | | | | | | | Previously, this produced wrong results, for example -3:30 became -3:-30. Change-Id: I10efdfb48e5542b917c86b29cf8a99bfc26f7fe0 Reviewed-by: John Layt <jlayt@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QDateTime: Fix sign handling in the timezone offset parserDaniel Seither2014-05-081-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, parsing negative timezone offsets with minutes != 00 produced wrong results. Examples (in -> out) -00:15 -> +00:15 -01:15 -> -00:45 Change-Id: I6fa30810a08bdf2996365661720b2e362e8aeb93 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: John Layt <jlayt@kde.org>
* | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-05-031-7/+1
|\| | | | | | | | | | | | | Manually fixed up: isES -> isOpenGLES src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp Change-Id: I57d2ef26c3d4a7b40ace09f4e8560b7686650ea5
| * Fix more double release in QTimeZone on MacJean-Philippe Proulx2014-05-021-6/+0
| | | | | | | | | | | | | | | | | | | | | | Several objects are released without being retained. This causes double free crash. Task-number: QTBUG-37582 Task-number: QTBUG-35890 Change-Id: Ic64419c22ab555ba77ada1864feaff247798d3ad Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| * Fix double release in QTimeZone on MacJean-Philippe Proulx2014-04-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | m_nstz is released in the destructor but not retained when using the QTimeZone(QByteArray) constructor. Task-number: QTBUG-35890 Task-number: QTBUG-37582 Change-Id: Ia569830bcd3c2f2cea04ad6696e681c4f2a3c137 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-05-0112-33/+56
|\| | | | | | | | | | | This merge adds the opengl rename. Change-Id: I84ea0b6abee9780ebb2cf3f64ab9e3fdf2acab3e
| * Deprecate setSharable in Qt containersThiago Macieira2014-04-2411-13/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ability to set a container to be unsharable has very little use and it costs us an extra conditional for every refcount up and possibly down. This change is a no-op for current Qt 5. It shuffles a few things around just so Qt can compile if you define QT_NO_UNSHARABLE_CONTAINERS. That is done to ease the fixing of the code in Qt 6 and to make my life easier: I'll keep that defined in my local Qt build so I can catch any misuses of this deprecated API. The newly deprecated methods are not marked QT_DEPRECATED because the bootstrapped tools wouldn't build -- they're built with QT_NO_DEPRECATED defined, which causes build errors. [ChangeLog][QtCore] The setSharable() and isSharable() functions in Qt containers has been deprecated and will be removed in Qt 6. New applications should not use this feature, while old applications that may be using this (undocumented) feature should port away from it. Discussed-on: http://lists.qt-project.org/pipermail/development/2014-February/015724.html Change-Id: I789771743dcaed6a43eccd99382f8b3ffa61e479 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Document QString's UTF-8 conversion behaviorsThiago Macieira2014-04-241-20/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We haven't handled the Unicode non-characters specially since Qt 5.2 (since commit 9327bc87c3abf58bb471693b5448cd78e3db1b46), so this part of the documentation was stale. Since Qt 5.3 (since 8dd47e34b9b96ac27a99cdcf10b8aec506882fc2), QString will insert one replacement character for each byte that can't be decoded properly. [ChangeLog][Important Behavior Changes][UTF-8 decoding] The QString UTF-8 decoder changed behavior slightly: when it encounters invalid sequences, it will insert one replacement character per byte that is invalid, instead of one replacement character for the whole invalid length. Change-Id: Ia4ec78afded9445bbe937311d6be80f71bd1a55f Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Allow building against static ICU libs also on UnixKai Koehne2014-04-291-2/+2
| | | | | | | | | | | | | | | | | | | | For dynamic builds of ICU, libicudata is an implicit dependency. Anyhow, it doesn't harm to explicitly link against it, either. So let's do this everywhere ... Task-number: QTBUG-38445 Change-Id: I420ba096e2ce5e1b8d81814ffb4aa7b300143b01 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Doc: QSize::isValid does >= 0 instead of > 0 comparisonsThiago Macieira2014-04-291-1/+1
| | | | | | | | | | | | | | | | | | The member function documentation was correct, just the class description was off. Task-number: QTBUG-38535 Change-Id: I55dded9d5ea79d93ce4984911acbeec8bbe6884a Reviewed-by: Martin Smith <martin.smith@digia.com>
* | Merge remote-tracking branch 'origin/release' into stableJani Heikkinen2014-04-234-4/+47
|\| | | | | | | Change-Id: Id13b4a3803664692f32f9d57549be8a0c4a08567
| * Fix warning with -Wswitch-enumKonstantin Ritt2014-04-232-0/+6
| | | | | | | | | | | | | | | | > warning: enumeration values 'Joining_None', 'Joining_Left', and 'Joining_Transparent' > not explicitly handled in switch [-Wswitch-enum] Change-Id: I314b486462451e7d62980b6185b46cd115be1547 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Improve the Unicode script itemization implementationKonstantin Ritt2014-04-141-4/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make it closer to the Unicode specs (UAX#24): * Common now inherits the preceding character's script, if any; * In a combining character sequence, if the base character is of Common script, the entire sequence is treated like if it were of the first non-Inherited, non-Common script in the sequence. See http://www.unicode.org/reports/tr24/tr24-21.html for more details. [ChangeLog][QtGui] Fixed regression in arabic text rendering. Task-number: QTBUG-28813 Task-number: QTBUG-29930 (related) Task-number: QTBUG-35836 Change-Id: Id85761965b08ca94c674d5f3613fe58b82b2ce9c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Ahmed Saidi <justroftest@gmail.com>
| * Doc: document QTimeZone::swap()Marc Mutz2014-04-101-0/+7
| | | | | | | | | | | | Change-Id: I80d55df65546b671772ed93cb852e88ee040114a Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | QCollator: Add note about ICU dependency.Friedemann Kleint2014-04-161-0/+5
| | | | | | | | | | | | | | Task-number: QTBUG-28766 Change-Id: If661915457c4874a72e1111b85897aea596362bf Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Fix documentation of QRegExpjkobus2014-04-141-2/+2
|/ | | | | Change-Id: I6c9083941eb791eb34ce982986e3e04ac5a765ad Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* Fix capacity reservation for shared QByteArrayThiago Macieira2014-04-051-1/+1
| | | | | | | | | | | | We can squeeze, but not by discarding elements. Make sure the size of the object stays intact after changing the reserved capacity. I've also added unit tests for other containers, just to be sure. Task-number: QTBUG-37750 Change-Id: I5135b095943b7589423c51cebcb52af792468e61 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Don't read before the beginning of the stringThiago Macieira2014-04-041-5/+11
| | | | | | | | | | The code did discard the the data, so it wasn't affecting the comparison result (tests added anyway), but it could cause crashes if the pointer to the beginning of the data in the first 8 bytes of a page. Change-Id: I618e68de329b65de34ef8c934934c3e631cc6c9f Reported-By: Erik Verbruggen Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* Fix unused variable warningKonstantin Ritt2014-04-011-1/+1
| | | | | | | | > qstring.cpp:5325:1: warning: 'defaultCollator' defined > but not used [-Wunused-variable] Change-Id: I29fe2006a678f4f0b3b504b90120c0e99d7090fb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix compile for embedded Androidaavit2014-03-311-1/+1
| | | | | | | It also has a broken declaration of posix_memalign Change-Id: Ie8f245564f80b04901425729b46953828204efaf Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Fix typosFrederik Gladhorn2014-03-291-1/+9
| | | | | Change-Id: I5388666f68f44b052b8950741a5d43f951ba4931 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Mark QPoint, QPointF, QRect, QRectF as reentrant.Mitch Curtis2014-03-272-0/+4
| | | | | | | Task-number: QTBUG-37667 Change-Id: I978a53e075efcfba8898c8e96bce8f19350dd6c4 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Reuse one QCollator instance for QString::localeAwareCompareLars Knoll2014-03-271-2/+8
| | | | | | | | | | | | | Constructing a QCollator is somewhat expensive, and made localeAwareCompare really slow. As QCollator (at least with the ICU implementation) is not thread safe, use one collator per thread. This speeds up collation of a long list of strings by a factor of 250 for the test case in the bug below. Task-number: QTBUG-36149 Change-Id: I645cdc3546347d1dcc7a03b7563b628c7f756944 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Remove useless Q_NO_DECLARED_NOT_DEFINED flagJędrzej Nowacki2014-03-251-1/+1
| | | | | | | | | | The flag is used only in qstring.h and gives no real value. Task-number: QTBUG-37437 Change-Id: I7513b56af208a5edee8452b8bbcb9b128e25133d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix some documentation errors.Friedemann Kleint2014-03-242-2/+22
| | | | | | | | Correct links and fix typos, remove obsolete documentation, fix some snippets, mark some classes as internal. Change-Id: I9a3266605f060783413d32740057a57a820c8929 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Fix qdoc warnings in QMargins, QRect.Friedemann Kleint2014-03-212-8/+8
| | | | | Change-Id: Iae2486e1f335679c288e05f45e2d283a7cf971c0 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Fix typos in QRegExp documentationKai Koehne2014-03-191-2/+2
| | | | | | Change-Id: I80bce716ac1c161fd87291ecdbf21eb8f3f25e5a Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix double release in QTimeZone on MacFrederik Gladhorn2014-03-191-1/+0
| | | | | | | | | availableTimeZoneIds would release the enumerator. This leads to a double free, so simply don't release the enumerator. Task-number: QTBUG-37582 Change-Id: I521a9555d32545afd47095235ccee75a4f3e1974 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Doc: document QSharedPointer::swap() methodMarc Mutz2014-03-172-0/+10
| | | | | | | | | | The function is already present for quite some time, but was never documented, so declare it as \since 5.3. Add swap() function to qsharedpointer.h so it's visible to QDoc, too. Change-Id: I8eba420878a096392fd181a180d5751101d37a50 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove level 4 compiler warnings from MSVC.David Schulz2014-03-156-8/+62
| | | | | | | | | | Task-number: QTBUG-7233 Change-Id: I52067e3a22e98a62fd87415906e54a54ff2d6b49 Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Dave McClelland
* Use QCommandLineParser in example dnslookup.Friedemann Kleint2014-03-151-0/+72
| | | | | | | | | | | Show how use QCommandLineParser with additional parameter checking for custom options and positional arguments. Also explain how to display help in GUI applications. Change-Id: I03513e09b7dd5b150259593da0af2ef2a281cab2 Reviewed-by: David Faure <david.faure@kdab.com>
* Doc: correction link, example and parameter issues qtbaseNico Vertriest2014-03-104-66/+97
| | | | | | | | | | | | | Moved codecs folder to qtbase/examples Corrected quote in dropsite.qdoc Replaced snippet statement by include statement Added doc for undocumented parameters Task-number: QTBUG-34749 Change-Id: If4de95b8d39e5680fd0f63f8d2b6685a4b0a8052 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Revert the QByteArrayList addition to Qt 5.3Thiago Macieira2014-03-083-384/+0
| | | | | | | | | | | | | | | | This reverts commits f12b0f9a38c792abb13f3e6ecff4542986a6f96b ("QByteArrayList: optimize op+"), f96f2fe3670bc8a32389795dc21b9839407465a1 ("Enable QByteArrayList tests"), and 4f23f0530a9c59400a7f3821cd2c9355801ed8cd ("new QByteArrayList class"). This class is coming back in Qt 5.4. [ChangeLog][CHANGELOG FIX] Remove the line about QByteArrayList being added. Change-Id: I890ab2b34a9b3e575512eb306d0f241143a867cf Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Add Objective-C specific type converters to QByteArraySamuel Gaist2014-03-084-1/+206
| | | | | | | | | | | | | | This patch adds the Objective-C NSData/CDataRef converters to QByteArray This will replace the current converters offered in QMacExtras [ChangeLog][QtCore][Objective-C] Added NSData/CDataRef converters for QByteArray Change-Id: I7a0f14bee4271798db345f3c5efd26ac671a3ea4 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix some typosSergio Ahumada2014-03-031-1/+1
| | | | | | Change-Id: I7dbe938bff5ac3ab50a0197f94bdb2f6c22fbd16 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* Fix link to argument formats in QString::setNum documentationKai Koehne2014-02-251-2/+2
| | | | | | | | Also drop mentioning of 'F', which is (though supported) not mentioned in the linked section. Change-Id: I9bf763f25b8b0309c338adbf3d63d94678ecee5e Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* QByteArrayList: optimize op+Marc Mutz2014-02-241-3/+2
| | | | | | | | | | | | The old code creates a default-constructed QByteArrayList, then performed two list-appends, the first one of which just performs assignment. Optimize by replacing the default construction and assignment with a copy constructor call. Change-Id: I6d5bd14172798c925b05bd3602e6d1d037d90796 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Doc: Address some "No documentation for..." QDoc warningsSze Howe Koh2014-02-242-6/+14
| | | | | | | Task-number: QTBUG-36985 Change-Id: I8619fb77e7879399064281f7bbefe5f12d3849a2 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Make QTextDecoder use our qt_from_latin1 codeThiago Macieira2014-02-221-1/+1
| | | | | | | | | | | | Disassembly shows the Intel compiler does expand to SIMD, but a much worse code than ours. Clang 3.4 does generate a compact SIMD version, probably of the same quality as our hand-written code. And GCC 4.7 through 4.9 don't generate SIMD at all. So let's use the most efficient version. Change-Id: I418e201a774ac0df1fb2b7a7d9589df7c9b655db Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make sure all containers compile in strict-iterator modeThiago Macieira2014-02-222-3/+3
| | | | | | | | | | | | | | | | | | Unit-test this by making the QList, QVector, QHash and QMap unit tests be duplicated under strict-iterator mode. There's no test for QLinkedList. The tst_Collections test does not compile under strict-iterator mode. It generated over 15000 errors when I tried. The strict iterators required a small change: the difference_type typedef needs to match the operators that get distances (operator-(iterator)) and move the iterator around (+, -, +=, -=, etc.). Task-number: QTBUG-29608 Change-Id: I834873934c51d0f139a994cd395818da4ec997e2 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Jason McDonald <macadder1@gmail.com>
* QMarginsF - Add new QMarginsF classJohn Layt2014-02-214-0/+655
| | | | | | | | | | | | Add a new QMarginsF class to complement QMargins in the style of QSize/QSizeF and QRect/QRectF. [ChangeLog][QtCore] Added class QMarginsF to support handling margins with floating-point values. Change-Id: Iaaa95ec85f5d126d9d864fc4b607241a8c8a8f3a Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QRect - Add missing QMargins subtraction operatorJohn Layt2014-02-212-0/+15
| | | | | | | | [ChangeLog][QtCore][QRect] Added QMargins subtraction operator. Change-Id: I64d449e2bae81a34df2cd019cff3fb186f8aaaae Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QMargins - Add missing operatorsJohn Layt2014-02-212-0/+68
| | | | | | | | | | | Add missing standard operators. [ChangeLog][QtCore][QMargins] Added missing addition and subtraction operators. Change-Id: I6aeed39531a736c12d378a817a9431279da79bc4 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QRect - Move QMargins operatorsJohn Layt2014-02-214-99/+99
| | | | | | | | Move QMargins operators to QRect file, change include sequence. Change-Id: I0e2ad91859ae65eb67c6ece50f8e4037516b463e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QHash: use prime numbers when rebucketingGiuseppe D'Angelo2014-02-191-8/+17
| | | | | | | | | | | | | | | | | | | | | QHash uses an array representing the difference between 2^i and the next prime; when growing, it calculates 2^x + array[x] (with `x' representing the "hash table size in bits"). For some reason lost in history the differences are actually wrong and the calculation above leads to using composite numbers. Hence: use the right sequence and always produce primes. The right sequence is actually A092131 from OEIS: http://oeis.org/A092131 Note that the sequence starts at A(1), but we need A(0) too. Also we truncate the sequence to when growing too much, just like the old code did, and use powers of two in that case instead. Task-number: QTBUG-36866 Change-Id: Id2e3fc9cb567c0fdca305dee38f480e17639ca04 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>