summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* Fix time change detection on UNIX systems without monotonic timersBradley T. Hughes2009-07-232-42/+79
| | | | | | | | | | | | | | | | | | A few fixes in one: 1. Don't loop on select() when not using monotonic timers... when select returns, the time may have changed, and the offset calculated in the loop may be very wrong on the next iteration. 2. Calculate the elapsed time deltas using timevals instead of integers using milliseconds. This handles changing the time by more than a few hours or days (i.e. months and years) without overflow. 3. When repairing the timers, the diff is already the correct sign, so we should just add the diff. Task-number: 250681 Reviewed-by: Thiago
* Fix two errors of QDirIteratorPrivate::matchesFilters()Benjamin Poulain2009-07-231-8/+2
| | | | | | | | | | | | The filter for includeSystem was exectuted twice. The second time was not correct according to d9a620633d0a5fa5e69ab06ec9a706118f3df2a6 (QFileInfo::exists() can return false for system file). For skipDirs, a parenthesis was missing in the test of includeHidden and includeSystem. This was introduced in the refactoring of 44766d265c16551043d2739171069fe042c40091 Reviewed-by: João Abecasis
* Omit monotonic timer detection/conditional code on Mac OS XBradley T. Hughes2009-07-232-18/+14
| | | | | | | | Now that we have a monotonic time source on the Mac, we don't need to compile in the code to detect wall-time changes and do timer adjustments. Reviewed-by: nrc
* make statemachine compile with QT_NO_PROPERTIESKent Hansen2009-07-234-0/+22
|
* Add the math3d types to QVariantRhys Weatherley2009-07-234-3/+45
| | | | Reviewed-by: Sarah Smith
* CompileAnders Bakken2009-07-221-1/+2
| | | | | | | | | The dummy implementaion of QReadWriteLock wasn't source compatible with the real implementation and this lead to compilation errors in qabstractfileengine.cpp which now has a global static QReadWriteLock that takes a Recursive argument. Reviewed-by: Noam Rosenthal <noam.rosenthal@nokia.com>
* Fix potential deadlock in QAbstractFileEngineJoão Abecasis2009-07-221-10/+12
| | | | | | | | | | There's a possibility for deadlocking with user code in QAbstractFileEngine. Changing the QMutex there to a QReadWriteLock should reduce the possibilities for this happening. Also reduced the scope of the lock in QAbstractFileEngine. Reviewed-by: Thiago Macieira
* Make QStateMachine inherit QStateKent Hansen2009-07-225-222/+111
| | | | | | | | | | | | | | | | | | This removes the need for a "root state" in the machine; or rather, the machine _is_ the root state. User code can now pass in a QStateMachine directly to the QState constructor, instead of machine->rootState(). This also means we could get rid of the "proxying" from the machine to the root state for things like properties (initialState et al), finished() signal and auto-reparenting of states (the ChildAdded event hack). A fun little side-effect of this change is that it's now possible to embed state machines within state machines. We can't think of a good use case yet where you would rather embed a stand-alone state machine (with its own event processing etc.) rather than having just a regular nested state, but it's neat and it works. Reviewed-by: Eskil Abrahamsen Blomfeldt
* Prefer mutable over const_cast.João Abecasis2009-07-222-5/+4
| | | | | Reviewed-by: Simon Hausmann Reviewed-by: Frans Englich
* Bugfix/optimization in QResourceFileEngineIteratorJoão Abecasis2009-07-221-2/+1
| | | | | | | | If the resource is valid, children should not be empty. If it happens to be, hasNext() should then return false. Setting the index to 0 ensures this and also that we don't keep trying the same thing over and over. Reviewed-by: Olivier Goffart
* Off-by-one error in QResourceFileEngineIteratorJoão Abecasis2009-07-221-1/+1
| | | | | | | | This was making the resource iterator return empty entries after listing resources. This showed up after QDirIterator stopped filtering empty entries. Reviewed-by: Olivier Goffart
* Don't hide errors in QDirIteratorJoão Abecasis2009-07-221-4/+1
| | | | | | | Empty filenames should only show up from bugs in file engine iterators's hasNext() function. We shouldn't try to hide those here. Reviewed-by: Olivier Goffart
* QDirIterator refactoringJoão Abecasis2009-07-221-5/+18
| | | | | | | Name filters and resulting regular expressions are stable, no need to regenerate the latter on each iteration. Reviewed-by: Olivier Goffart
* QDirIterator refactoringJoão Abecasis2009-07-221-6/+5
| | | | | | | | '*' is functionally the same as having no name filters. Equating the equivalence in the constructor avoids repeated checks in the advance "loop". Reviewed-by: Olivier Goffart
* QDirIterator refactoringJoão Abecasis2009-07-221-13/+16
| | | | | | Moving member data around and marking immutable data as such. Reviewed-by: Marius Storm-Olsen
* QDirIterator: fail early, fail oftenJoão Abecasis2009-07-221-2/+2
| | | | | | | If nothing else changes, there's no point to keep trying. Let a broken QDirIterator be broken. Reviewed-by: Marius Storm-Olsen
* QDirIterator: Cleaning up after one's selfJoão Abecasis2009-07-221-2/+1
| | | | | | | | | Well, why not? Resetting nextFileInfo when we're done allows removing unnecessary check in QDirIterator::next(), while retaining behavior. Reviewed-by: Marius Storm-Olsen
* QDirIterator cleanup after refactoringJoão Abecasis2009-07-221-9/+8
| | | | | | | Return value for checkAndPushDirectory is no longer used, we can just throw it out. Reviewed-by: Marius Storm-Olsen
* QDirIterator refactoringJoão Abecasis2009-07-221-11/+7
| | | | | | | | | | | Now that the heavy lifting has been done, we can condense QDirIteratorPrivate::advance() further. It almost looks nice, even! Using fileEngineIterators.top() directly in the loop condition allows us to manipulate the stack without the foundDirectory check. Since QStack can be inlined, this shouldn't severely affect performance... Reviewed-by: Marius Storm-Olsen
* QDirIterator refactoringJoão Abecasis2009-07-221-9/+9
| | | | | | | | | Some pointless renaming and mashing up... Actually, some of it sets the stage for (yes, you guessed it!) more refactoring! Reviewed-by: Marius Storm-Olsen
* QDirIterator: no point in delaying the inevitableJoão Abecasis2009-07-221-7/+3
| | | | | | | | | | | | | | The only reason I see for not calling advance() directly in the constructor is to delay potentially unnecessary work. However, since copy constructors have been explicitly disabled, once QDirIterator is instantiated one has signed up for all the pain that comes with it. That's also a couple less conditionals in each iteration of normal use cases. Reviewed-by: Marius Storm-Olsen
* QDirIterator refactoringJoão Abecasis2009-07-221-4/+3
| | | | | | | | done was set no sooner and no later than the file engine iterators stack was emptied (in a single threaded setting, anyway). There is no need to maintain additional state separately. Reviewed-by: Marius Storm-Olsen
* QDirIterator: another one bites the dustJoão Abecasis2009-07-221-12/+5
| | | | | | | | | | | | Removing another data member in QDirIteratorPrivate. The only reason I see for not doing this is to delay doing work as much as possible. Since copy constructors are disabled anyway, once QDirIterator is instantiated one has already signed up for the pain. The code also looks cleaner this way. Reviewed-by: Marius Storm-Olsen
* Still fixing QDirIterator...João Abecasis2009-07-221-2/+2
| | | | | | | | | | | Setting nextFileInfo in the constructor would generate visible behavior changes on the first call to QDirIterator::hasNext(), and that's just wrong. Namely, fileName(), filePath() would return different results before and after calling hasNext(). Reviewed-by: Marius Storm-Olsen
* QDirIterator cleanupJoão Abecasis2009-07-221-7/+5
| | | | | | | The authoritative copy of filters and nameFilters is available, there is no need to get this from the file engine iterators. Reviewed-by: Marius Storm-Olsen
* QDirIterator: Don't recurse into hidden directories unless askedJoão Abecasis2009-07-221-0/+4
| | | | | | | | | | | If we're skipping hidden files, we should skip hidden directories as well. The user can still request that hidden directories not be skipped by specifying QDir::AllDirs in the filter. Incidentally, all other filters are ignored when recursing into sub-directories. Perhaps that should be addressed as well. Reviewed-by: Marius Storm-Olsen
* QDirIterator moving around conditionsJoão Abecasis2009-07-221-6/+5
| | | | | | | Which is faster QFileInfo::isSymlink() or QFileInfo::fileName() followed by string comparisons? Reviewed-by: Marius Storm-Olsen
* Faster condition comes firstJoão Abecasis2009-07-221-1/+1
| | | | Reviewed-by: Marius Storm-Olsen
* QDirIterator: refactor initializations in private constructorJoão Abecasis2009-07-221-5/+5
| | | | | | There's no need for initializing variables twice. Reviewed-by: Marius Storm-Olsen
* Merge commit 'origin/4.5'Olivier Goffart2009-07-221-2/+0
|\ | | | | | | | | | | Conflicts: src/gui/graphicsview/qgraphicsscene.cpp src/gui/kernel/qt_cocoa_helpers_mac_p.h
| * Fix building in a namespace when building with -arch ppc on Mac OS XAndy2009-07-211-2/+0
| | | | | | | | | | Task-number: 257080 Reviewed-by: nrc
* | delete incorrect documentationKent Hansen2009-07-221-12/+0
| |
* | Silence compiler warnings on shadowing of member functions.Volker Hilsheimer2009-07-211-11/+11
| |
* | Merge the memcpy with the lowercasing and the non-ASCII detection.Thiago Macieira2009-07-211-13/+17
| | | | | | | | | | This gives a 5% improvement in performance by avoiding iterating over the contents more than once.
* | Slight performance improvement by caching the label size.Thiago Macieira2009-07-211-7/+14
| |
* | Minor performance improvements in nameprepping.Thiago Macieira2009-07-212-25/+28
| | | | | | | | | | | | Avoid calling functions that may have other side effects, like QString::utf16(). Use pointers whenever possible when iterating over the string.
* | Fix bug in locating non-lowercase TLDs: must lowercase.Thiago Macieira2009-07-211-2/+6
| | | | | | | | | | Use qt_nameprep after all since it's extremely fast for ASCII only and it does in-place replacement.
* | One more improvement in QUrl: avoid an extra lowercasing step.Thiago Macieira2009-07-211-17/+13
| | | | | | | | | | | | | | Since we're going to do nameprepping anyways, avoid the lowercasing step at the function entry (and thus, one extra temporary). The nameprepping step is also faster than QString::toLower for the ASCII case.
* | Improve performance in QUrl parsing by doing in-line operations.Thiago Macieira2009-07-211-31/+32
| | | | | | | | | | | | Unfortunately, I can't do it all inline because the punycode encoding and decoding requires reading the source several times. (Maybe the decoding can be done with some effort in the future)
* | Change qt_nameprep to do in-line namepreppingThiago Macieira2009-07-211-26/+24
| | | | | | | | This will allow to do less allocations in qt_ACE_do.
* | Add qt_string_normalize to do in-place Unicode normalization.Thiago Macieira2009-07-212-37/+37
| | | | | | | | | | This way, we can improve QUrl parsing performance by avoiding unnecessary copies.
* | Implement strict STD3 checking of hostnames in URLs.Thiago Macieira2009-07-211-69/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Made the toPunycodeHelper function write to a QString. Renamed qt_from_ACE to qt_ACE_do to indicate what it actually does. Added the STD3 rules for hostnames, forcing hostnames to have to strictly comply to STD3. Also, execute nameprep in the correct order (before trying to encode to Punycode). Validate hostnames when QUrlPrivate::canonicalHost() called, including validation of IP Literals. Validation of IPv4 is missing. Adapted other functions to use qt_ACE_do, notably QUrl::toAce (avoid code duplication).
* | Fix memory leak with wrapped eventsKent Hansen2009-07-211-0/+3
| | | | | | | | Reviewed-by: Eskil Abrahamsen Blomfeldt
* | Use the configure script to enable/disable QtConcurrent and QtXmlPatternsThiago Macieira2009-07-211-18/+5
| | | | | | | | | | | | | | | | Using qglobal.h and checking the compiler version with the preprocessor has the side-effect that moc won't generate proper code since it doesn't know about the compiler version. Enable both modules under Sun CC 5.9 and IBM xlC 7.0.
* | xlC 7 cannot compile QtConcurrent with these templates hereThiago Macieira2009-07-211-1/+1
| |
* | Fix compilation with xlC 7: the cast is necessary to get delete[] to ↵Thiago Macieira2009-07-211-1/+1
| | | | | | | | | | | | understand what to delete Reviewed-By: Trust Me
* | Fix warning with Sun CC 5.9 and xlC 7: no new types inside anonymous unions.Thiago Macieira2009-07-211-5/+6
| | | | | | | | | | | | | | | | These compilers compile this code fine, but this warning shows up *everywhere* when building Qt (or used to, since qstringlist.h included qstringmatcher.h). Move the structure definition to outside the union.
* | There's no need to include qstringmatcher.h in qstringlist.hThiago Macieira2009-07-212-1/+1
| |
* | Disable visibility on CC 5.9 since the compiler doesn't like itThiago Macieira2009-07-211-1/+2
| |
* | Try to express ourselves better in the explanation for the curve types.Jan-Arve Sæther2009-07-211-81/+84
| | | | | | | | | | Don't use easing too much. Also add an explanation of what "ease in" and "ease out" is.