<table><tr><td style="">bruns marked an inline comment as done.<br />bruns added inline comments.
</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/D28324">View Revision</a></tr></table><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/D28324#inline-161287">View Inline</a><span style="color: #4b4d51; font-weight: bold;">pino</span> wrote in <span style="color: #4b4d51; font-weight: bold;">kinotify.cpp:350</span></div>
<div style="margin: 8px 0; padding: 0 12px; color: #74777D;"><p style="padding: 0; margin: 8px;">no, an assert is sort of "program by contract": you make it clear that this situation ought to not happen, and it if does, at least some people may notice that</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 style="padding: 0; margin: 8px;">Anyone touching the code should and has to read the man pages etc anyway.</p></blockquote>
<p style="padding: 0; margin: 8px;">and an explicit mention/comment in the code never killed anyone, nor made the code "cluttered"; also what is valid today might change in the future, so writing down why a check/assert was added make sure that people reading the changed documentation know why it made sense when it was added</p></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">After two years of maintaining baloo (and other software for much longer) I can assure you you are wrong.</p>
<p style="padding: 0; margin: 8px;">If we checked all the conditions which are guaranteed by the API (null termination of strings, only complete events, bounds check of event->len ...) here and everywhere else, the could would be cluttered. And just picking an arbitrary condition to be more equal is nonsense.</p>
<p style="padding: 0; margin: 8px;">This is kernel API, it does not change.</p>
<p style="padding: 0; margin: 8px;">Comments are useful when some code is not obvious. Copying an explicitly spelled out condition from the man page does clutter the code. Otherwise we would have to copy the whole man page to have the code covered in its entirety.</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R293 Baloo</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D28324">https://phabricator.kde.org/D28324</a></div></div><br /><div><strong>To: </strong>bruns, Baloo, ngraham<br /><strong>Cc: </strong>pino, kde-frameworks-devel, hurikhan77, lots0logs, LeGast00n, cblack, fbampaloukas, GB_2, domson, ashaposhnikov, michaelh, astippich, spoorun, ngraham, bruns, abrahams<br /></div>