summaryrefslogtreecommitdiffstats
path: root/src/corelib/json
Commit message (Collapse)AuthorAgeFilesLines
...
| * Don't copy the whole binary input into QJsonDocumentDenis Dzyubenko2012-03-291-3/+4
| | | | | | | | | | | | | | | | | | If the input binary data exceeds the size of the enclosed binary object, we shouldn't allocate buffer and copy the whole content, but only content size that has meaningful data. Change-Id: I32587f504bd120c6e4e3d7e1b3403961a6f0d537 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
| * Validate size of the input in QJsonDocument::fromBinaryDataDenis Dzyubenko2012-03-291-2/+4
| | | | | | | | | | Change-Id: Ifc1d11b4dfbbe782d4e153118059c9affb833fa4 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
| * Properly detach when the modified object is a sub objectLars Knoll2012-03-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | The clone() method didn't detach if we had enough memory allocated, but didn't consider that the object being modified is not the root object of the binary blob. Change-Id: I9a479ae1c873b7fe9cff7e13c539e7a41961bf68 Reviewed-by: Cristiano di Flora <cristiano.di-flora@nokia.com> Reviewed-by: abcd <amos.choy@nokia.com> Reviewed-by: Jamey Hicks <jamey.hicks@nokia.com>
| * QJsonParseError improvementsAlexei Rousskikh2012-03-272-11/+90
| | | | | | | | | | | | | | | | - added human-readable error message - improved enum value names Change-Id: I86d4bb419f9581f85d61b6e090048f1943017f9e Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | Clean up constructors for "statics" in QString and QByteArrayJoão Abecasis2012-04-041-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were two constuctors offering essentially the same functionality. One taking the QStatic*Data<N> struct, the other what essentially amounts to a pointer wrapper of that struct. The former was dropped and the latter untemplatized and kept, as that is the most generic and widely applicable. The template parameter in the wrapper was not very useful as it essentially duplicated information that already maintained in the struct, and there were no consistency checks to ensure they were in sync. In this case, using a wrapper is preferred over the use of naked pointers both as a way to make explicit the transfer of ownership as well as to avoid unintended conversions. By using the reference count (even if only by calling deref() in the destructor), QByteArray and QString must own their Data pointers. Const qualification was dropped from the member variable in these wrappers as it causes some compilers to emit warnings on the lack of constructors, and because it isn't needed there. To otherwise reduce noise, QStatic*Data<N> gained a member function to directly access the const_cast'ed naked pointer. This plays nicely with the above constructor. Its use also allows us to do further changes in the QStatic*Data structs with fewer changes in remaining code. The function has an assert on isStatic(), to ensure it is not inadvertently used with data that requires ref-count operations. With this change, the need for the private constructor taking a naked Q*Data pointer is obviated and that was dropped too. In updating QStringBuilder's QConcatenable specializations I noticed they were broken (using data, instead of data()), so a test was added to avoid this happening again in the future. An unnecessary ref-count increment in QByteArray::clear was also dropped. Change-Id: I9b92fbaae726ab9807837e83d0d19812bf7db5ab Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge master into api_changesKent Hansen2012-03-232-10/+19
|\| | | | | | | Change-Id: I93551e4d13a1b0815b359b9415060e9089477db1
| * Significantly speed up insertion into QJsonObject/ArrayLars Knoll2012-03-222-10/+19
| | | | | | | | | | | | | | | | | | | | | | | | The code was only allocating memory for the next insertion leading to a reallocation of the whole data for every single insertion. The code now reserves some space and uses a decent growth strategy to avoid repeated reallocs. Change-Id: I48b0feab71ba8ca73e7037f8460080f198b2f009 Reviewed-by: Jamey Hicks <jamey.hicks@nokia.com>
* | Merge master into api_changesKent Hansen2012-03-162-1/+9
|\| | | | | | | | | | | | | | | | | Conflicts: src/corelib/kernel/qmetatype.cpp src/gui/kernel/qplatformsurface_qpa.cpp tests/auto/corelib/tools/qtimeline/qtimeline.pro Change-Id: Iff3fff34eeeb06f02369767ddfce44cfde505178
| * Trailing comma should result in an error during JSON parsingAlexei Rousskikh2012-03-122-1/+9
| | | | | | | | | | | | | | | | | | 1. QJsonParseError::MissingObject defined 2. QJsonDocument::fromJson() will result in defined error after parsing of something like "{ 'key':1 , }" or "[ {'key':1}, ]" Change-Id: I8e6234a03b8aca4e5ad6180f273f91066b86d7a1 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | Merge remote-tracking branch 'origin/master' into api_changesLars Knoll2012-03-122-2/+2
|\| | | | | | | | | | | | | Conflicts: tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp Change-Id: I884afc3b6d65c6411733a897a1949e19393573a7
| * Fix a bug in the assignment operators for QJsonObject and ArrayLars Knoll2012-03-082-2/+2
| | | | | | | | | | | | | | | | | | | | When objects or arrays where being used read only, several objects can share the same d pointer, but will have different pointers into the binary data. Correctly change the pointer into the binary data even if the d-pointer is the same. Change-Id: Ife0ea5ac5daf46586f855dccdf35b51ec696a623 Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* | Merge remote-tracking branch 'origin/api_changes' into containtersJoão Abecasis2012-03-086-23/+27
|\| | | | | | | | | | | | | | | | | Conflicts: src/corelib/kernel/qmetaobject.cpp src/corelib/kernel/qvariant.cpp src/tools/moc/moc.h Change-Id: I2cd3d95b41d2636738c6b98064864941e3b0b4e6
| * Fix parsing of unicode escape sequencesLars Knoll2012-03-071-2/+2
| | | | | | | | | | Change-Id: I63a7cd3a571fb47c97157bcb2ca29c4239c600ba Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Merge remote-tracking branch 'origin/api_changes'Lars Knoll2012-03-043-0/+3
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: dist/changes-5.0.0 mkspecs/features/qt_module_config.prf qmake/project.cpp qmake/property.cpp Change-Id: I6e4af40743a9aeff8ed18533a48036e332acc296
| | * Make qlocale.h not depend on qvariant.h.Stephen Kelly2012-02-293-0/+3
| | | | | | | | | | | | | | | | | | | | | As a consequence, we have to add more explicit includes. Change-Id: Ib3137031f0554b846c7bbd08f1f7df10dfeb8e61 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
| * | Remove the usage of deprecated qdoc macros.Casper van Donderen2012-03-023-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDoc now has support for Doxygen style commands for italics, bold and list items. This change applies that change in QDoc to the actual documentation. Task-number: QTBUG-24578 Change-Id: I519bf9c29b14092e3ab6067612f42bf749eeedf5 Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
| * | Make QJsonPrivate::String compile on big endian platforms.Jason Barron2012-02-291-1/+2
| |/ | | | | | | | | | | | | Was missing a variable declaration and an explicit cast. Change-Id: I4f0fb9c3d9b8472adf0d91036442adc1fe255c7e Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | Merge remote-tracking branch 'gerrit/master' into containersJoão Abecasis2012-02-216-25/+91
|\| | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.h Change-Id: I03b1f3e05c9b7a45130887c522fcd9b7aa387129
| * Added error reporting to QJsonParserAndrew Christian2012-02-184-23/+87
| | | | | | | | | | Change-Id: Ib2390c0faf1ed7ada3fc185abce83740ad112929 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
| * Add JSON support to the bootstrap libraryLars Knoll2012-02-152-0/+2
| | | | | | | | | | | | | | | | | | | | | | The JSON support will get used in moc to support the creation of plugin metadata that's embedded into the plugin itself. Change-Id: I3bc52b16ca0a43bc8bf9141b450045c6183b7823 Reviewed-by: João Abecasis <joao.abecasis@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Fixed alignment check in QJsonDocument::fromRawDataDenis Dzyubenko2012-02-101-2/+2
| | | | | | | | | | Change-Id: I1d107e26a77e40f91ff09d43e9529b08da8f7c3b Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | QConstStringData -> QStaticStringDataJoão Abecasis2012-02-061-1/+1
|/ | | | | | | | The class was renamed in fed603fde515339ec520accefded211ac6f69982. Change-Id: I859f318e80a739f31c2666d0e3088c62b55c5f13 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix some warnings from clangLars Knoll2012-02-023-5/+5
| | | | | | | | | One of them was a real error, that could lead to Data::alloc containing wrong values. Change-Id: I48315ef6fd59188630107ebbe7bf8dbaa5da689e Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Trivial fix in qjsonobject.h for -Werror=shadowJani Uusi-Rantala2012-02-021-2/+2
| | | | | | | | | | There was a few errors coming from other components using qtbase - error: declaration of 'o' shadows a member of 'this' [-Werror=shadow]. Change-Id: Ib394f404370f001e68fde8b424cd5fff527d8fe7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Update contact address in license headers.Jason McDonald2012-01-3114-14/+14
| | | | | Change-Id: I35bf916087511f26bfeb49ceb3256d9a20fbc1c0 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Add a null pointer check to QJsonObject::toVariantMapLars Knoll2012-01-301-3/+5
| | | | | | | | | | If the object is null, simply return an empty variant map. Added another test case checking conversion from QJsonArray to a QVariantList. Change-Id: Ieccd163e76630f7db7f41255acd9d1baf66bb38d Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Kevin Simons <kevin.simons@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-3014-14/+14
| | | | | | | | | | 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>
* Fix compilation problem in qjsonvalue.hJani Uusi-Rantala2012-01-281-1/+1
| | | | | | | Extra ; after namespace was causing build failures with -pedantic. Change-Id: I340252810a04815820964c625377a1dc0635783f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fixed includes in public headersDenis Dzyubenko2012-01-274-5/+5
| | | | | Change-Id: I360c94d41691a618f1bec97da8317c9dcee658c0 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fixed QString::operator<(QLatin1String)Denis Dzyubenko2012-01-261-1/+1
| | | | | | | | | | | | | | QLatin1String now has a constructor that takes explicit length, which makes it possible to create QLatin1String that do not have null-termination character. Fixed QString::operator> and < to be safe in that case. In the same patch fixed qtjson which had operator< implemented in the same way. QString::compare(QLatin1String) is still broken and will be fixed separately. Change-Id: I48ec1183a6f44034129cc17312af854795085408 Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Import json support from playground/qtbinaryjsonLars Knoll2012-01-2415-0/+6312
This imports the JSON support for Qt 5 from playground/qtbinaryjson. It adds a fast, fully compliant json parser, a convenient C++ API, conversion to and from QVariants and a binary format for JSON that is extremely fast to use together with the C++ API. Change-Id: If9e3a21a4241d388d0abaa446b6824f9cc6edb1c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>