- User Since
- Jul 2 2016, 9:23 AM (102 w, 1 d)
Thu, Jun 14
Wed, Jun 13
Tue, Jun 12
Change @since to 5.48
The patch reserves 67 buckets in the QHash table vs. 37 by default.
In my test, pasing the content of https://www.boe.es/legislacion/documentos/ConstitucionCASTELLANO.pdf from Okular,
the number of items in the cache is a maximum of 24 members when inserting.
But the first undo uses up to 2300 members (4099 buckets), and later undoes only use a maximum of 43 members.
Mon, Jun 11
I misread what was after the goto. :-(
Modified also the similar method createUDSEntry.
I'm sorry, I was missing a -dev package and therefore I was not compiling kio sftp.
Sun, Jun 10
If there is a more constrained limit, this should be changed, of course.
Thu, Jun 7
I'm sorry, I can't reproduce it with dolphin. (symbolic links and hard links and sftp://127.0.0.1).
Could you get a backtrace with more information, at least who is calling udsentry.cpp, line 107? Probably you can get it running the program inside gdb or under valgrind. Or you should compile the program and dependencies with -DCMAKE_BUILD_TYPE=RelWithDebInfo
Tue, Jun 5
Changed the structure QListBinaryHash to QMap
Changed from KFileItems pointers to Values (it caused memory problems).
Fri, Jun 1
The change in kdirmodel is not needed anymore.
The methods that were const are const again.
Better documented the new reinsert method.
Now passes the tests and its performance for non invalid items is not degraded too much (same +3ms inserting).
Wed, May 30
Taken into account invalid Items created from invalid QUrls.
Invalid items are not less than invalid items or invalid urls, they are not like -infinite.
Added the tests comparing items with urls.
Changed the descriptions.
A KFileItem without url will be the lowest, even lower than itself.
Created a new test.
Tue, May 29
Thu, May 24
About the KCoreDirLister::Private::addNewItems method, benchmarking the current and sorted list implementation with 5000 fileItems:
Removed m_hash, after implementing the right checks it was slower than comparing QUrls.
Wed, May 23
Based on the tests done in D12945 and D11282, the best solution is to have the result of qHash(url) in KFileItem to compare items in the binary search.
In two cases, the KFileItem in the list has to be moved to the right position, this is still faster than before.
Introduce two methods to insert an item into the list and to move the item to the right position.
May 17 2018
May 15 2018
May 14 2018
May 10 2018
Added the documentation for insert.
Removed the () from the QDataStream& operators, but must be kept for QDebug or clang++ will not compile.
Adjusted the reserved amounts.
May 9 2018
Direct friendship with the operators.
The crash after the redirection in fish://127.0.0.1 was due to a remaining of an unfinished patch in other files.
After removing it and testing the patch in different machines and different compilers, this solves this crash and I haven't noticed regressions.
May 8 2018
Make some friends functions.
A bad type in copy&paste didn't allowed me the use of the module functions save/load/debugUDSEntry,
Don't use java style.
As UDSEntryPrivate is private, declare public methods save, load and debugUDSEntry, otherwise I couldn't access the private d pointer from the << and >> operators.
May 7 2018
Hopefully, all the issues fixed.
May 4 2018
Add the new tests instead of replace.
Use QTRY_COMPARE instead of custom loops.
Reduce the number of files to 100.
Add and remove from the list.
Removed some methods that are not used in the benchmarks.
Added the asserts to check the type of the data at the beginning of every insert and replaceOrInsert.
May 3 2018
You are right, there is no change to m_views there.
I've included some methods that will be needed if AnotherUDSEntry replaces the current one.
I hope to have addressed all your comments.
May 2 2018
Another way to improve insertion speed in release could be:
Transform "insert" to really insert only, with ASSERTS if it used as "replaceOrInsert" and add new methods "replaceOrInsert".
Fixed the ordered insertion.
Using std::vector and std::find_if.
Initialize everything to try to detect a change of type in a "insert" over a different type.
If anyone attempts this, please name the struct and its members, don't use QPair ;-)
But no, that cannot possibly be faster. QVariant has lots of overhead itself.
Apr 28 2018
If I use if (!u.path().isEmpty()) or if (!u.path().isEmpty() && !u.path().endsWith('/')),
as soon as I enter the url fish://127.0.0.1 (without trailing /), I'm redirected to fish://127.0.0.1/home/jtorres (that didn't happen before), and after finishing reading the directory, assertion.
Apr 27 2018
The responsible for changing smb:// into smb:/// was: void KFileWidgetPrivate::_k_enterUrl(const QUrl &url)
With this patch, the crashes are gone, as there is no redirection to smb:///
But now there is no smb error message.
Apr 26 2018
I'm one of those that choose a file and add a "_2" to the filenames. ;-)
Apr 25 2018
Just to know if I'm in the correct path, because I'm getting out of ideas.
Use in the hash table, and probably in other parts, always the url with at most one trailing /.
Apr 23 2018
One solution is to call printDebug(), which will output lots of information including the contents of directoryData().
Apr 21 2018
Apr 20 2018
More investigation, in bold what causes the problem.
Removed Q_PRIVATE_SLOT. Didn't saw them again. :-(
Change the first connect.
No need to change the name of the slot.
Pass the plain error message.
Implemented as Aleix suggested, using QPointer.
Apr 19 2018
Lately, the zoom widget is placed at the bottom in most programs, perhaps it can be moved at the left of the Save/Open Cancel buttons.
If the mouse distance is a problem, the navigation buttons can be placed at the top right, just where the zoom widget is now.
This is just another idea.
Apr 17 2018
I have renamed one private slot because I didn't find a better solution.
QOverload seems to work only for signals, not for slots.
Apr 16 2018
The current state is that it freezes as long as the file deletion (unlink) lasts.
Changed from "can't" to "shouldn't".