summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* Reading QJsonObject property should not modify the object itself.Jędrzej Nowacki2014-07-254-11/+83
| | | | | | | | | | | | | | | | | | | | | | | | | Before this change such code: QJsonObject o; o["blah"]; would create property "blah" and assign null value to it, while this code: const QJsonObject o; o["blah"]; would not. The change unifies the confusing behavior. Now reading a non-existing property, is not causing a property to be added in any visible way. Internally QJsonObject stores a special hash of undefined, but referenced values. Such reference is supposed to not live long, only to the first compacting or assignment. Change-Id: Ib022acf74ff49bad88d45d65d7093c4281d468f1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix QJsonObject const index operatorJędrzej Nowacki2014-07-251-1/+1
| | | | | | | | | The operator should always return an undefined values for an empty object Change-Id: Ic38f7660d77c64b2d001967bc5109df4185db74a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Reduce QtCoreLib size by not repeating "UTC" string too often.Jędrzej Nowacki2014-07-255-10/+21
| | | | | | | | It is a minor reduction, in release build it is ~200 bytes Change-Id: I4f7972c95769f2e0ca1ddc935ff7a0a6b4379e2a Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Re-implement QVector::countJoão Abecasis2014-07-251-7/+1
| | | | | | | | | | There is no need for a custom algorithm as we can use std::count Change-Id: Id1ab514c7cd8f52efe49b27712121415d7ca4455 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* QRegularExpression: make optimize() constGiuseppe D'Angelo2014-07-252-2/+2
| | | | | | | | | | | | Although it may seem strange that such a method is const, optimizing doesn't affect the user-visible part of the object. Moreover, *not* having it const makes it asymmetrical with other methods (such as match()) which are const, and under certain conditions optimize as well. Change-Id: I0cd8d4a6909d00629fcc65c1c3a1f011f31db782 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QSettings: use QSaveFile and QLockFile to write the settingsOlivier Goffart2014-07-241-235/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | The old unix locking code is no longer working on unix since it locks on a file descriptor, but QSaveFile creates a new file, and as a result we get the lock on the wrong file. Also there is no need to keep the lock held only for reading as QSaveFile is atomic. It just needs to be held when doing a read before writing. As a result, since we don't hold the same lock, there could be a race with an application running an older version of Qt if they are writing on the same configuration file. [ChangeLog][QtCore][QSettings] Fixed data loss while writing the config to the disk fails. [ChangeLog][Important behavior changes] The locking mechanism inside QSettings has changed and is no longer compatible with the one of previous versions of Qt. There might be corruption if two applications running different versions of Qt are writing to the same config file at the same time. You must also now have write permissions in the directory containing the settings file in order to write settings Task-number: QTBUG-21739 Change-Id: I0844a5e96c8bc1e1222a3dac6cc48170ca77fe1b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Rewrite QRingBufferAlex Trotsenko2014-07-241-191/+88
| | | | | | | | | QRingBuffer is a fully inlined class used in many I/O classes. So, it must be as fast and small as possible. To this end, a lot of unnecessary special cases were replaced by generic structures. Change-Id: Ic189ced3b200924da158ce511d69d324337d01b6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Make QTextStream respect QLocale with OmitGroupSeparatorsThiago Macieira2014-07-241-1/+1
| | | | | | | | | | | | The default in QTextStream is to use the C locale, so default QTextStream are not affected. When you set a QLocale on it, the default was to use group separators (which is the QLocale default too). This commit makes QTextStream respect a QLocale in which the OmitGroupSeparators option had been set. Task-number: QTBUG-39956 Change-Id: I00fbe12fca7f0287c7217deb487ded6582a03b52 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QSettings: use QStandardPaths to get XDG_CONFIG_HOME.David Faure2014-07-231-0/+6
| | | | | | | | | This allows to use the "test mode" of QStandardPaths in unittests, to stay away from the user's real settings. Change-Id: I1cb1f63a4bff35dfe236924c4dcd7cf761ee50c1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Document that qHash(T) must be in T's namespace, due to ADLThiago Macieira2014-07-231-4/+4
| | | | | | | | | | | | Due to C++'s rule of Argument-Dependent Lookup, a call to an unqualified qHash(t) will look up qHash in T's namespace. So edit the docs saying that it must be "global qHash" to say that it should be in the type's namespace. Task-number: QTBUG-34912 Change-Id: I7a72800008ccb710b4bb814e42db7a95f385f53e Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Don't store QLibraryPrivate with empty file names in the global storeThiago Macieira2014-07-231-2/+2
| | | | | | | | | | | | | | | | They shouldn't exist in the first place. They exist in two cases only: 1) mistake by the user in the QLibrary or QPluginLoader constructors or setFileName 2) as a kludge for setLoadHints before a file name is set (we need to store the user's requested hints somewhere) This is important for the second case, as otherwise all QLibrary and QPluginLoader objects without a file name would share the setting. Task-number: QTBUG-39642 Change-Id: Iebff0252fd4d95a1d54caf338d4e2fff4de3b189 Reviewed-by: David Faure <david.faure@kdab.com>
* Fix a few more race conditions with QLibrary::LoadHintsThiago Macieira2014-07-234-22/+32
| | | | | | | | | | This commit makes replaces the loadHints member with a setter, a getter and an atomic variable. The setter will not set anything if the library has already been loaded. Task-number: QTBUG-39642 Change-Id: Ibb7692f16d80211b52aaf4dc88db1a989738a24d Reviewed-by: David Faure <david.faure@kdab.com>
* Support setting a default severity level for QLoggingCategoryKai Koehne2014-07-235-35/+95
| | | | | | | | | | | | | | | | | | | | | | | | | Allow to alter the default configuration for categories by passing a message type: All message types with lower severity are disabled in this category. This is useful for libraries, which shouldn't mess with the category registry itself: Setting rules, a category filter ... might cause conflicts and ordering problems, so this API should be reserved to the specific application. For the Qt categories, we have code in the default category filter that disables the 'debug' category. However, this is hardcoded, and there's no way so far for other libraries to get the same behavior. With this patch one can get the same behavior: Q_LOGGING_CATEGORY(DRIVER_USB_EVENTS, "driver.usb.events", QtWarningMsg); [ChangeLog][QtCore][Logging] Added QtMsgType argument to QLoggingCategory constructor and Q_LOGGING_CATEGORY macro that controls the default category configuration. Change-Id: Ib2902f755f9f7285d79888ec30e8f3cef95ae628 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* QDebugStateSaver: Fix trailing space issuesKai Koehne2014-07-231-1/+8
| | | | | | | | | | | | | | ~QDebug() removes any trailing space if autoInsertSpaces() is true. However, if one uses QDebugStateSaver the global autoInsertSpaces might be false, but a space was added by a custom operator<<. Explicitly check for this in QDebugStateSaverPrivate::restoreState. Remove any trailing space if the local state asks for adding trailing spaces, but the original one doesn't. Add a trailing space if the local state doesn't ask for one, but the global state does. Change-Id: I243b5c76d5ed2c1ec4820da35ab6e254da1551d9 Reviewed-by: David Faure <david.faure@kdab.com>
* QLockFile/Windows: Determine host name from environment variable COMPUTERNAME.Friedemann Kleint2014-07-231-9/+16
| | | | | | | | Useful when using shared directories. Task-number: QTBUG-39967 Change-Id: I2c082e33133b00306378b6ff58478e94119e6a0e Reviewed-by: David Faure <david.faure@kdab.com>
* Be more specific in "Loading logging rules" debug outputKai Koehne2014-07-231-1/+1
| | | | | Change-Id: I8a6f1797cbcfabc6df76ce17115a678f729ac711 Reviewed-by: hjk <hjk121@nokiamail.com>
* Introduce Q_DECL_UNUSED_MEMBER for clangKai Koehne2014-07-233-7/+15
| | | | | | | | | | | | | | | | Since version 3.2, clang warns about unused member variables (-Wunused-private-field). Marking such members with Q_DECL_UNUSED_MEMBER will silence this warning. This is a cleaner way than using Q_UNUSED() somewhere in the class methods (like we did previously in qloggingcategory.cpp). It mirrors Q_DECL_UNUSED for unused variables, which however can't be used unconditionally for member variables because e.g. gcc will complain. Change-Id: I2afff683a7c3bae3bdcd684e5085a643887bb2a0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: hjk <hjk121@nokiamail.com>
* Make QRingBuffer::append() not leave empty arrays in buffer listAlex Trotsenko2014-07-231-3/+7
| | | | | Change-Id: I4c5af33488a70996299289ec2b953b7bf3b2c428 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Add QFileDevice::MemoryMapFlags::MapPrivateOption flag.Simon Sasburg2014-07-234-7/+36
| | | | | | | | | | Passing this flag to QFileDevice::map() will allow writes to the mapped memory without modifying the file that was mapped. These writes will be lost when the memory is unmapped. Change-Id: I7d46b044fc370585de8c06fdb4059f1f1be12d7d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix warnings about integer conversion in qloggingregistry.cpp.Friedemann Kleint2014-07-221-3/+3
| | | | | | | | | io\qloggingregistry.cpp(134) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data io\qloggingregistry.cpp(138) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data io\qloggingregistry.cpp(142) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data Change-Id: Ic9787aa8acb5cb4440c62bbb143f7c2b7fdad385 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* QDebug: Add a doc section about formatting optionsKai Koehne2014-07-221-0/+12
| | | | | Change-Id: I43cb965f9f45e8a50c767c7e9035811c90e6aab3 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Improve debugging output for QLoggingCategoryKai Koehne2014-07-211-6/+6
| | | | | | | | | Make sure that the source the rules are loaded from is printed before any syntax errors. Change-Id: Id7ced1a346dd0d8501eab93ac00e1f432ca6b703 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
* Add example qtlogging.conf file to QLoggingCategory documentationKai Koehne2014-07-211-1/+7
| | | | | | Change-Id: I0ceeb8afa711cc7bc1378287b0d550871e5bfd9d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
* QRingBuffer: purge unused part of the apiAlex Trotsenko2014-07-181-33/+0
| | | | | | | Remove unused and untested class functions. Change-Id: I8eb963db0ae4be9b5cdde91f6747c4a1db4ea649 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* QItemSelectionModel: Sort persistent model indexes taking parent into account.Friedemann Kleint2014-07-171-3/+21
| | | | | | | | | | | When sorting a tree model with large sub-trees and and a large selection, the existing sort function would mix indexes of different parents, causing a fragmented selection, which slows down painting. Task-number: QTBUG-33954 Change-Id: Ia585fc1e5de9a1a3f6124a58c9c7c40fcbdbfb6a Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QDebug: Add resetFormat()Kai Koehne2014-07-152-2/+19
| | | | | | | | | | Similar to QTextStream::reset(), this resets the stream format to the defaults. Its primary use is inside custom operator<< implementations, where you'd want to have a fixed format regardless of the current stream state. Change-Id: I421d76c61f164579bb90cf4195cc5376e2dcf0f3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Improve QLoggingCategory example code in documentationKai Koehne2014-07-151-14/+14
| | | | | | | | | | | | | | Don't use a qt.* category in the user documentation: These should be reserved to Qt internal use, and also have special semantics (QtDebugMsg by default off) that might lead to confusion. Also, adapt the camel case naming convention for logging categories defined by the macros. This was the (although somewhat controversial) result of a recent discussion on the development mailing list. Change-Id: Ic7162b47bb2d76550c766bc40dd65ce039e7e3eb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Doc: update QCoreApplication to be clear that we don't support text UIThiago Macieira2014-07-141-2/+2
| | | | | Change-Id: Icc032470629201668c085fd74725a2965f09eb47 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/devShawn Rutledge2014-07-142-2/+3
|\
| * Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-142-2/+3
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/gui/text/qfontengine_qpf2.cpp Change-Id: Ib04f92c41d0edd55d3aef8fb1708d917fba0f2a8
| | * Work around ICC bug in brace initializations containing constexprThiago Macieira2014-07-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ICC miscompiles this: struct Inner { int i; constexpr Inner(int i) : i(i) {}}; struct Outer { Inner i; }; const Outer x = { -1 }; (Inner = QBasicAtomicInt; Outer = QtPrivate::RefCount, then again for QListData::Data) We expect x to be placed in read-only memory and require no load-time constructor. ICC unfortunately does not do that. By adding a constexpr constructor to Outer, it starts behaving like we expect it to, but falls apart again if you do "const Outer x[]" (the QArrayData statics). The solution is to probably make the varaibles constexpr too, but that's a job for the development branch. Intel issue Id: 6000056211 Intel bug: DPD200534796 Change-Id: Ie9fb5428106486254b7329403890754f300d58c1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Fixed wrong function name in a file snippetIvan Komissarov2014-07-101-1/+1
| | | | | | | | | | | | | | | Change-Id: I453c5085685badeb6577009a0c6935dfe384258f Reviewed-by: Richard J. Moore <rich@kde.org>
* | | QLoggingCategory documentation improvementsKai Koehne2014-07-141-1/+3
|/ / | | | | | | | | Change-Id: I9cc16d01f62d94fa3e7869bf9bb7734c774f82e3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Speedup qDebug() << QDate(...)Jędrzej Nowacki2014-07-141-1/+1
| | | | | | | | | | | | | | We really do not need to do string parsing there. Change-Id: Ie2277d9ff0d0445285b7108023941af111d9baca Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Logging: fix support for %{time format} in QT_MESSAGE_PATTERNOlivier Goffart2014-07-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This revert commit de1d5815c15ba1f944752cf7d441442efeb0accb which wrongly fixed a typo. There is no typo because we use startsWith with that constant. Also added a test because the %{time} support was added in commit 93563952d00f865b73136f6a316ca2b8732db85f but the test was missing Change-Id: Ic96e6f21f989ca3a2905ec6c89b93d2627b77b40 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Revert "QRegularExpression: lock a mutex only if there's actual work to do"Giuseppe D'Angelo2014-07-131-2/+2
| | | | | | | | | | | | | | | | | | | | Blunder -- two threads may step into this method together, both see not studied, and both study (with one leaking its study data). This reverts commit 5fbd787cf9a72621d66604a4898f06ea4365226e. Change-Id: Ia746925abcad1e43adf4f6f1d495b018de022b07 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/devFrederik Gladhorn2014-07-103-26/+33
|\ \
| * | Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-103-26/+33
| |\| | | | | | | | | | Change-Id: Ia12ffdb27ecdf25c2a2bdb0eed1945387502108a
| | * Fix for code snippet in commandlineparser documentationNiels Weber2014-07-071-1/+2
| | | | | | | | | | | | | | | | | | | | | One line in the code snippet wasn't translated whlie the others were. Change-Id: Ie77a317833f800087b485609cd001dd26060a40f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
| | * Android: Refactor exception checking in qjni.Christian Strømme2014-07-071-19/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | In places where we call java/jni functions that can throw exceptions, we check and clear the exception, if necessary. This change moves the "checking" code into a single (private) function. Change-Id: Ic3de2be51305972b096e1ed0a477e341eb5d9404 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| | * Attempt to work with Visual Studio in -Za (strict ANSI) modeThiago Macieira2014-07-051-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Visual Studio always treats enum values as signed int, even when the value doesn't fit in a signed int (like 0x80000000 or larger than 32- the tags themselves are still signed. That causes ambiguity in creating a QFlag from an enum value. Visual C++ defines __STDC__ in C mode, but we have no macro in C++ mode. Also note that the Windows SDK headers don't compile in -Za mode. Task-number: QTBUG-39700 Change-Id: Ia943cef37ac1f539bd461c3c18200b0c365c72b3 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | | Add QDebug::noquote() stream modifierKai Koehne2014-07-103-9/+69
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow the user to disable the quoting of QString, QByteArray, QStringLiteral by passing a "noquote()" stream modifier. This requires another flag to be added to QDebug::Stream. To keep BC we're using the QMessageLogContext::version field to differentiate between QDebug streams created by earlier versions. Task-number: QTBUG-37146 Change-Id: I9b215eabfcfd754af16ea87f3ef928d698e37d77 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Make QExplicitlySharedDataPointer<T> copy-ctor from QESDP<X> more safeKevin Funk2014-07-092-5/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With "QExplicitlySharedDataPointer::QExplicitlySharedDataPointer( const QExplicitlySharedDataPointer<X> & other)" implicitly doing an static_cast<T *>(...) on other.data(), this could lead to dangerous use of this copy constructor. Example code: QExplicitlySharedDataPointer<Base> base(new Base); QExplicitlySharedDataPointer<Derived> derived(base); // that works! This patchs disables the use of the static_cast, and adds a new define called QT_ENABLE_QEXPLICITLYSHAREDDATAPOINTER_STATICCAST to re-enable that code path. Note, that the other way-around (assigning 'derived' to 'base') still works as intended. Other side note: QtXmlPatterns is relying heavily on the hidden static_cast "feature". The other default Qt modules compile fine with the static_cast removed. [ChangeLog][Important Behavior Changes] QExplicitelySharedDataPointer's copy constructor which performs a static_cast from "X *" to "T *" (when constructing a QExplicitlySharedDataPointer<T> from a QExplicitlySharedDataPointer<X>) doesn't perform a static_cast from "X *" to "T *" any more. Instead, an implicit cast is now performed. This change will break compilation of code that relied on the downcast (i.e. cast towards a more derived type) of the templated type when copy costructing a QExplicitelySharedDataPointer object. Please refer to the class documentation for more information about this issue and a workaround to keep old code compiling. Change-Id: Id32aba6cda4e6d44728d7bc3a5c0c7a20f19adc6 Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Remove QHashDummyNode and avoid undifined behaviorOlivier Goffart2014-07-082-26/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | A lot of code in QHash is doing casting to QHashNode while the pointer may be of type QHashDummyNode. This is a lot of undefined behavior. Remove QHashDummyNode and specialize QHashNode for QHashDummyValue instead. QHashDummyValue is the only type for which QTypeInfo::isDummy is true. Q_DUMMY and QTypeInfo::isDummy are internal API, so is QHashDummyNode, so we can remove them. Task-number: QTBUG-40029 Change-Id: I60c2ff0933075b9202bde89a9992746052f75133 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Rename QSysInfo::cpuArchitecture and fullCpuArchitectureThiago Macieira2014-07-072-35/+35
| | | | | | | | | | | | | | | | To buildCpuArchitecture and buildAbi, respectively. Change-Id: If84852eb4ef48a6e1fb4351f7a1a4434b4dc3f72 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | QObject: don't hold mutex when copying arguments in a QueuedConnectionOlivier Goffart2014-07-071-4/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | QMetaType::create can call user code and we should not keep mutex held as this may cause dead lock. Make sure the tst_qobjectrace actually emit some signal so the test check there is no race if the receiver object is destroyed while the mutex is unlocked. Task-number: QTBUG-39990 Change-Id: I56ca1ae7a11cd7b33c1a68727370972862e11c2f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Don't look up a QChar's digit value more than necessaryThiago Macieira2014-07-071-5/+8
| | | | | | | | | | | | | | | | | | | | It isn't a particularly complex operation, but why waste CPU cycles? This is the kind of function that should be declared pure/const. Change-Id: I13f03ef0f87607f7649c66beeb37614a31ef2a10 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* | Add missing detection for some 64-bit architecturesThiago Macieira2014-07-071-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | Architectures missing were arm64, mips64, power64, s390x and sparcv9 (sparc64, but we're using the name that matches the Q_PROCESSOR_xxx define, which in turn matches Solaris's psrinfo output). Change-Id: I50b8152b3c42589b98db157b9efeae2be6a90414 Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Mark all QChar static functions as [[gnu::const]]Thiago Macieira2014-07-073-40/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The GCC documentation says that a const function is not allowed to read global memory. This needs to be clarified: it's not allowed to read RW global memory. It's fine to read read-only memory, as that is equivalent to just pure code. The QChar static out-of-line functions only lookup a property of the given Unicode character and always return the same value. The only exception is the decomposition() function, which returns a QString and is therefore not allowed to be marked const. Change-Id: Id36b2f84a1b8ff9db5acf1d4e59e8b3811068cff Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | Remove QT_STATIC_CONSTThiago Macieira2014-07-071-12/+0
| | | | | | | | | | | | | | | | | | | | | | This macro is no longer used. It was introduced probably by mistake, due to MSVC not following the strict string requirement of the C and C++ standards by default (you can assign a string literal to a non-const char*). Change-Id: I4b221dd435191b0eea689dbed35915cf3206648b Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>