<table><tr><td style="">dfaure requested changes to this revision.<br />dfaure added a comment.<br />This revision now requires changes to proceed.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D25010">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
color: #6B748C;
font-style: italic;
margin: 4px 0 12px 0;
padding: 8px 12px;
background-color: #F8F9FC;">
<div style="font-style: normal;
padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D25010#565502" style="background-color: #e7e7e7;
border-color: #e7e7e7;
border-radius: 3px;
padding: 0 4px;
font-weight: bold;
color: black;text-decoration: none;">D25010#565502</a>, <a href="https://phabricator.kde.org/p/meven/" style="
border-color: #f1f7ff;
color: #19558d;
background-color: #f1f7ff;
border: 1px solid transparent;
border-radius: 3px;
font-weight: bold;
padding: 0 4px;">@meven</a> wrote:</div>
<div style="margin: 0;
padding: 0;
border: 0;
color: rgb(107, 116, 140);"><p>Funny thing is that statx includes always the name, down to syscall we can save at most STATX_SIZE , STATX_TYPE fields in NoDetails case.</p></div>
</blockquote>
<p>But this isn't only about configuring the statx call. If we are not interested in the name, we save the QFile::decodeName() call (8 bit to 16 bit conversion, triggering also a memory allocation).</p>
<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>I updated kdiroperator.cpp to use it line 748 since it only checks if a file exists.<br />
This code path is not run for local files anyway.</p></blockquote>
<p>Right -- at some point we should also use the details stuff in other ioslaves :-)</p>
<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>Another thing comes to mind<br />
If we allow not to fill KIO::UDSEntry::UDS_LINK_DEST but when KIO::ResolveSymlink is passed, we can save the second STAT by not passing AT_SYMLINK_NOFOLLOW to the first statx.</p></blockquote>
<p>Interesting, but given that statx isn't always available, I fear this will make the code quite complex?</p>
<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>So perhaps we want to expose a detail for this use case : that is add a IncludeLinkDest to KIO::StatDetail removing this field for StatDetail::Basic.<br />
I am not sure we have any use case currently though.</p></blockquote>
<p>I need to think more about this, gotta go.</p></div></div><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D25010#inline-143677">View Inline</a><span style="color: #4b4d51; font-weight: bold;">kossebau</span> wrote in <span style="color: #4b4d51; font-weight: bold;">directorysizejob.cpp:137</span></div>
<div style="margin: 8px 0; padding: 0 12px; color: #74777D;"><p style="padding: 0; margin: 8px;">More correct would be KIOCORE_BUILD_DEPRECATED_SINCE(5, 65)., not ENABLE here and in the other cpp files.</p></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">Now that I look at this again, we do NOT want to follow symlinks here.</p>
<p style="padding: 0; margin: 8px;">This was a bug in the existing code.</p>
<p style="padding: 0; margin: 8px;">In Dolphin we want to display the size of the target file (more useful information than the size of the symlink itself), but when calculating directory size, we do NOT want to follow the symlink, the target size does not count.</p>
<p style="padding: 0; margin: 8px;">These new flags allow to fix this long-standing bug.</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R241 KIO</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D25010">https://phabricator.kde.org/D25010</a></div></div><br /><div><strong>To: </strong>meven, Frameworks, dfaure, kossebau<br /><strong>Cc: </strong>kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns<br /></div>