| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Reviewed-by: Simon Hausmann
Reviewed-by: Frans Englich
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Name filters and resulting regular expressions are stable, no need to
regenerate the latter on each iteration.
Reviewed-by: Olivier Goffart
|
|
|
|
|
|
|
|
| |
'*' 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
|
|
|
|
|
|
| |
Moving member data around and marking immutable data as such.
Reviewed-by: Marius Storm-Olsen
|
|
|
|
|
|
|
| |
If nothing else changes, there's no point to keep trying. Let a broken
QDirIterator be broken.
Reviewed-by: Marius Storm-Olsen
|
|
|
|
|
|
|
|
|
| |
Well, why not?
Resetting nextFileInfo when we're done allows removing unnecessary check
in QDirIterator::next(), while retaining behavior.
Reviewed-by: Marius Storm-Olsen
|
|
|
|
|
|
|
| |
Return value for checkAndPushDirectory is no longer used, we can just
throw it out.
Reviewed-by: Marius Storm-Olsen
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Which is faster QFileInfo::isSymlink() or QFileInfo::fileName() followed by
string comparisons?
Reviewed-by: Marius Storm-Olsen
|
|
|
|
| |
Reviewed-by: Marius Storm-Olsen
|
|
|
|
|
|
| |
There's no need for initializing variables twice.
Reviewed-by: Marius Storm-Olsen
|
|\
| |
| |
| |
| |
| | |
Conflicts:
src/gui/graphicsview/qgraphicsscene.cpp
src/gui/kernel/qt_cocoa_helpers_mac_p.h
|
| |
| |
| |
| |
| | |
Task-number: 257080
Reviewed-by: nrc
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
This gives a 5% improvement in performance by avoiding iterating over
the contents more than once.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Avoid calling functions that may have other side effects, like
QString::utf16(). Use pointers whenever possible when iterating over
the string.
|
| |
| |
| |
| |
| | |
Use qt_nameprep after all since it's extremely fast for ASCII only and
it does in-place replacement.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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)
|
| |
| |
| |
| | |
This will allow to do less allocations in qt_ACE_do.
|
| |
| |
| |
| |
| | |
This way, we can improve QUrl parsing performance by avoiding
unnecessary copies.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| |
| |
| |
| | |
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| |
| | |
understand what to delete
Reviewed-By: Trust Me
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Don't use easing too much. Also add an explanation of what "ease in"
and "ease out" is.
|