{"id":252134,"date":"2015-03-01T16:39:03","date_gmt":"2015-03-01T12:39:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=252134"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=252134","title":{"rendered":"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LibreOffice"},"content":{"rendered":"<p>\n  \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e open-source \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 LibreOffice, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043e\u0431\u043e\u0439 \u043e\u0444\u0438\u0441\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442. \u0412 \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 480 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432. \u041a\u043e\u0434 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u044b\u043c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c Coverity. \u041d\u043e, \u043a\u0430\u043a \u0438 \u0432 \u043b\u044e\u0431\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u044b, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435. \u0414\u043b\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f, \u0432 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0442\u044c \u043d\u0435 \u0435\u0434\u0438\u043d\u043e\u0440\u043e\u0433\u0438, \u0430 \u043a\u043e\u0440\u043e\u0432\u044b.<\/p>\n<p>  LibreOffice \u2014 \u043c\u043e\u0449\u043d\u044b\u0439 \u043e\u0444\u0438\u0441\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 32\/64-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438. \u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043d \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 30 \u044f\u0437\u044b\u043a\u043e\u0432 \u043c\u0438\u0440\u0430. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0432\u043a\u043b\u044e\u0447\u0430\u044f GNU\/Linux, Microsoft Windows \u0438 Mac OS X.<\/p>\n<p>  LibreOffice \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u0435\u043d \u0438 \u0438\u043c\u0435\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434. \u041d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445: Java, Python, C++. \u0410\u043d\u0430\u043b\u0438\u0437\u0443 \u0431\u044b\u043b\u0430 \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 C++ (\u0438 \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u043d\u0430 \u0421, C++\/CLI). Version: 4.5.0.0.alpha0+ (Git revision: 368367).<\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437 \u0431\u044b\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u0434\u0430 PVS-Studio.<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b, \u0438 \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441 \u043d\u0438\u043c\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u0425\u043e\u0447\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438. \u042f \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u043a\u043e\u0434\u043e\u043c \u0438 \u043c\u043e\u0433 \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432\u043f\u043e\u043b\u043d\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043a\u043e\u0434. \u041e\u0434\u043d\u0430\u043a\u043e, \u0440\u0430\u0437 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0441\u0431\u0438\u043b \u0441 \u0442\u043e\u043b\u043a\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0438 \u043c\u0435\u043d\u044f, \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043f\u0430\u0445\u043d\u0435\u0442, \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<p>  \u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0438<br \/>\n  \u041b\u044e\u0431\u043e\u0439 \u043a\u043e\u0434 \u043d\u0435 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0431\u0435\u0437 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a. \u041c\u043d\u043e\u0433\u0438\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0436\u0438\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043d\u0430 \u0434\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043e\u043d\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0440\u0435\u0434\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0438\u043b\u0438 \u043d\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0441\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0434\u043d\u0443 \u0442\u0440\u0435\u0442\u044c:<br \/>\n  class SvgGradientEntry {   &#8230;.   bool operator==(const SvgGradientEntry&amp; rCompare) const   {     return (getOffset() == rCompare.getOffset()            &amp;&amp; getColor() == getColor()            &amp;&amp; getOpacity() == getOpacity());   }   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V501 There are identical sub-expressions to the left and to the right of the &#8216;==&#8217; operator: getColor() == getColor() svggradientprimitive2d.hxx 61<\/p>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0435 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u0434\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u044d\u0442\u043e\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;==&#8217; \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u041e\u0434\u043d\u0430\u043a\u043e, \u0440\u0430\u0437 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u043c\u043e\u0433 \u043d\u0430\u0439\u0442\u0438 \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443, \u043e\u043d \u0441\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043d\u0435 \u0432 \u0440\u0430\u0437\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0445, \u0430 \u0432 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p>  \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438? \u041d\u0435 \u0437\u043d\u0430\u044e. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0443\u0447\u0438\u0442\u044c \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u0435\u0435 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0431\u044b\u043b\u0430 \u0431\u044b \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u0444\u043e\u0440\u043c\u0438\u0442\u044c \u0442\u0430\u043a:<br \/>\n  bool operator==(const SvgGradientEntry&amp; rCompare) const {   return    getOffset()  == rCompare.getOffset()          &amp;&amp; getColor()   == getColor()          &amp;&amp; getOpacity() == getOpacity(); }<br \/>\n  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0442\u0430\u043b\u043e \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u043e, \u0447\u0442\u043e \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u00abrCompare\u00bb. \u0425\u043e\u0442\u044f \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e. \u041c\u043e\u0436\u0435\u0442 \u0438 \u043d\u0435 \u043f\u043e\u043c\u043e\u0447\u044c. \u0427\u0435\u043b\u043e\u0432\u0435\u043a\u0443 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f. \u0418 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0431\u044b\u0432\u0430\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u043e\u043c.<\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0434\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0443 \u044f\u0432\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c. \u041a\u0442\u043e-\u0442\u043e \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043a\u043e\u0434 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438.<\/p>\n<p>  void TabBar::ImplGetColors(&#8230;.) {   &#8230;.   aTempColor = rFaceTextColor;   rFaceTextColor = rSelectTextColor;   rSelectTextColor = rFaceTextColor;   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V587 An odd sequence of assignments of this kind: A = B; B = A;. Check lines: 565, 566. tabbar.cxx 566<\/p>\n<p>  \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432\u043c\u0435\u0441\u0442\u043e &#8216;rFaceTextColor&#8217; \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c &#8216;aTempColor&#8217;.<\/p>\n<p>  \u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u00ab\u0432\u0440\u0443\u0447\u043d\u0443\u044e\u00bb. \u0411\u044b\u043b\u043e \u0431\u044b \u043f\u0440\u043e\u0449\u0435 \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u0435\u0439 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 std::swap():<br \/>\n  swap(rFaceTextColor, rSelectTextColor);<br \/>\n  \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c. \u041e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u0434\u0443\u043c\u0430\u044e \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 \u0447\u0438\u0441\u0442\u043e\u043c \u0432\u0438\u0434\u0435:<br \/>\n  void SAL_CALL Theme::disposing (void) {   ChangeListeners aListeners;   maChangeListeners.swap(aListeners);    const lang::EventObject aEvent (static_cast&lt;XWeak*&gt;(this));    for (ChangeListeners::const_iterator            iContainer(maChangeListeners.begin()),            iContainerEnd(maChangeListeners.end());        iContainerEnd!=iContainerEnd;        ++iContainerEnd)   {     &#8230;.   } }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V501 There are identical sub-expressions to the left and to the right of the &#8216;!=&#8217; operator: iContainerEnd != iContainerEnd theme.cxx 439<\/p>\n<p>  \u0426\u0438\u043a\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u00abiContainerEnd!=iContainerEnd\u00bb \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u043e\u0436\u043d\u043e. \u041f\u043e\u0434\u0432\u0435\u043b\u043e \u0441\u0445\u043e\u0436\u0438\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c: \u00abiContainer!=iContainerEnd\u00bb. \u041a\u0441\u0442\u0430\u0442\u0438, \u0437\u0434\u0435\u0441\u044c \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u0421\u0442\u0440\u0430\u043d\u043d\u043e, \u0447\u0442\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u00abiContainerEnd\u00bb.<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b:<br \/>\n  static void lcl_FillSubRegionList(&#8230;.) {   &#8230;.   for( IDocumentMarkAccess::const_iterator_t       ppMark = pMarkAccess-&gt;getBookmarksBegin();     &lt;&lt;&lt;&lt;&#8212;-       ppMark != pMarkAccess-&gt;getBookmarksBegin();    &lt;&lt;&lt;&lt;&#8212;-       ++ppMark)   {     const ::sw::mark::IMark* pBkmk = ppMark-&gt;get();     if( pBkmk-&gt;IsExpanded() )       rSubRegions.InsertEntry( pBkmk-&gt;GetName() );   } }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V625 Consider inspecting the &#8216;for&#8217; operator. Initial and final values of the iterator are the same. uiregionsw.cxx 120<\/p>\n<p>  \u0426\u0438\u043a\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;ppMark&#8217; \u043d\u0443\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0441 &#8216;pMarkAccess-&gt;getBookmarksEnd()&#8217;. \u0418\u0434\u0435\u0439, \u043a\u0430\u043a \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0430\u0432\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430, \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442. \u041f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430.<\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u0438\u043d\u043e\u0433\u0434\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0435\u0441\u0442\u044c, \u043d\u043e \u043e\u043d\u0430 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e \u043e\u0434\u043d\u0443 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a:<br \/>\n  bool PolyPolygonEditor::DeletePoints(&#8230;.) {   bool bPolyPolyChanged = false;   std::set&lt; sal_uInt16 &gt;::const_reverse_iterator      aIter;( rAbsPoints.rbegin() );   for( aIter = rAbsPoints.rbegin();        aIter != rAbsPoints.rend(); ++aIter )   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V530 The return value of function &#8216;rbegin&#8217; is required to be utilized. polypolygoneditor.cxx 38<\/p>\n<p>  \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c: aIter;( rAbsPoints.rbegin() );<\/p>\n<p>  \u0425\u043e\u0442\u0435\u043b\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440. \u041d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0432\u043a\u043b\u0438\u043d\u0438\u043b\u0430\u0441\u044c \u0442\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c. \u0410 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 &quot;(rAbsPoints.rbegin());&quot; \u0431\u043e\u043b\u0442\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u043e\u0437\u0434\u0443\u0445\u0435 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442.<\/p>\n<p>  \u0421\u043f\u0430\u0441\u0430\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0442\u043e, \u0447\u0442\u043e \u0432 \u0446\u0438\u043a\u043b\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0443\u0436\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u0412 \u043e\u0431\u0449\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u0442, \u043d\u043e \u043b\u0438\u0448\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043b\u0443\u0447\u0435 \u0443\u0431\u0440\u0430\u0442\u044c. \u041a\u0441\u0442\u0430\u0442\u0438, \u044d\u0442\u043e\u0442 \u0446\u0438\u043a\u043b \u0431\u044b\u043b \u0440\u0430\u0437\u043c\u043d\u043e\u0436\u0435\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Copy-Paste, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0435\u0449\u0451 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 69 \u0438 129 \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 \u0444\u0430\u0439\u043b\u0435. <\/p>\n<p>  \u041d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043a\u043b\u0430\u0441\u0441:<br \/>\n  XMLTransformerOOoEventMap_Impl::XMLTransformerOOoEventMap_Impl(         XMLTransformerEventMapEntry *pInit,         XMLTransformerEventMapEntry *pInit2 ) {   if( pInit )     AddMap( pInit );   if( pInit )     AddMap( pInit2 ); }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V581 The conditional expressions of the &#8216;if&#8217; operators situated alongside each other are identical. Check lines: 77, 79. eventoootcontext.cxx 79<\/p>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;if&#8217; \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c &#8216;pInit2&#8217;.<\/p>\n<p>  \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a \u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043e, \u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e<br \/>\n  \u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438. \u041d\u043e \u044f \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u0430\u043a \u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043e.<br \/>\n  class VCL_DLLPUBLIC MouseSettings {   &#8230;.   long GetStartDragWidth() const;   long GetStartDragHeight() const;   &#8230;. }  bool ImplHandleMouseEvent( &#8230;. ) {   &#8230;.   long nDragW  = rMSettings.GetStartDragWidth();   long nDragH  = rMSettings.GetStartDragWidth();   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: V656 Variables &#8216;nDragW&#8217;, &#8216;nDragH&#8217; are initialized through the call to the same function. It&#8217;s probably an error or un-optimized code. Consider inspecting the &#8216;rMSettings.GetStartDragWidth()&#8217; expression. Check lines: 471, 472. winproc.cxx 472<\/p>\n<p>  \u041d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 nDragW \u0438 nDragH \u043e\u0434\u043d\u0438\u043c \u0438 \u0442\u0435\u043c \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c, \u0438\u043b\u0438 \u043d\u0435\u0442. \u0415\u0441\u043b\u0438 \u0434\u0430, \u0442\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f. \u0418\u043b\u0438 \u043b\u0443\u0447\u0448\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u044f\u0432\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c:<br \/>\n  long nDragW  = rMSettings.GetStartDragWidth(); long nDragH  = nDragW;<br \/>\n  \u041f\u043e\u0445\u043e\u0436\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f:<br \/>\n  void Edit::ImplDelete(&#8230;.) {   &#8230;.   maSelection.Min() = aSelection.Min();   maSelection.Max() = aSelection.Min();   &#8230;. }<br \/>\n  V656 Variables &#8216;maSelection.Min()&#8217;, &#8216;maSelection.Max()&#8217; are initialized through the call to the same function. It&#8217;s probably an error or un-optimized code. Consider inspecting the &#8216;aSelection.Min()&#8217; expression. Check lines: 756, 757. edit.cxx 757<\/p>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0451 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u042f \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0437\u043d\u0430\u044e, \u0435\u0441\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u043e\u0448\u0438\u0431\u043a\u0430 \u0438\u043b\u0438 \u043d\u0435\u0442.<\/p>\n<p>  \u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439. \u0412 \u043a\u043b\u0430\u0441\u0441\u0435 \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:  GetVRP()  GetVPN()  GetVUV()  \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c, \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b &#8216;aVPN&#8217; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f GetVRP().<br \/>\n  void ViewContactOfE3dScene::createViewInformation3D(&#8230;.) {   &#8230;.   const basegfx::B3DPoint aVRP(rSceneCamera.GetVRP());   const basegfx::B3DVector aVPN(rSceneCamera.GetVRP());  &lt;&lt;&lt;&#8212;   const basegfx::B3DVector aVUV(rSceneCamera.GetVUV());   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V656 Variables &#8216;aVRP&#8217;, &#8216;aVPN&#8217; are initialized through the call to the same function. It&#8217;s probably an error or un-optimized code. Consider inspecting the &#8216;rSceneCamera.GetVRP()&#8217; expression. Check lines: 177, 178. viewcontactofe3dscene.cxx 178<\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0432\u044b\u0434\u0430\u043b \u0435\u0449\u0451 \u043e\u0434\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 V656. \u042f \u043f\u043e\u0447\u0442\u0438 \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u0442\u0430\u043c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430. \u041d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0435 \u0431\u0443\u0434\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0439. \u041f\u0440\u043e\u0448\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e\u0442 \u0441\u044e\u0434\u0430:  V656 Variables &#8216;oNumOffset1&#8217;, &#8216;oNumOffset2&#8217; are initialized through the call to the same function. It&#8217;s probably an error or un-optimized code. Check lines: 68, 69. findattr.cxx 69<br \/>\n  Copy-Paste <\/p>\n<p>  \u0412\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0431\u0435\u0437 Copy-Paste \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043a\u0440\u0430\u0439\u043d\u0435 \u0443\u0442\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0438 \u0441\u043a\u0443\u0447\u043d\u044b\u043c \u0437\u0430\u043d\u044f\u0442\u0438\u0435\u043c. \u0411\u0435\u0437 Ctrl-C, Ctrl-V \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u043a\u0430\u043a \u0431\u044b \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u044d\u0442\u0438 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0448. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434. \u041d\u043e \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u044e \u0432\u0441\u0435\u0445: \u043a\u043e\u043f\u0438\u0440\u0443\u044f \u043a\u043e\u0434, \u0431\u0443\u0434\u044c\u0442\u0435 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u044b \u0438 \u0431\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b!<br \/>\n  uno::Sequence&lt; OUString &gt; SwXTextTable::getSupportedServiceNames(void) {   uno::Sequence&lt; OUString &gt; aRet(4);   OUString* pArr = aRet.getArray();   pArr[0] = &quot;com.sun.star.document.LinkTarget&quot;;   pArr[1] = &quot;com.sun.star.text.TextTable&quot;;   pArr[2] = &quot;com.sun.star.text.TextContent&quot;;   pArr[2] = &quot;com.sun.star.text.TextSortable&quot;;   return aRet; }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V519 The &#8216;pArr[2]&#8217; variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 3735, 3736. unotbl.cxx 3736<\/p>\n<p>  \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041f\u0440\u043e\u0447\u0442\u0438 \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0431\u044b\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0430 \u0438\u0437 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439. \u0417\u0430\u043c\u0435\u043d\u0438\u043b\u0438 \u00abContent\u00bb \u043d\u0430 \u00abSortable\u00bb, \u0430 \u043f\u0440\u043e \u0438\u043d\u0434\u0435\u043a\u0441 &#8216;2&#8217; \u0437\u0430\u0431\u044b\u043b\u0438.<\/p>\n<p>  \u041e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439:<br \/>\n  Sequence&lt;OUString&gt; FirebirdDriver::getSupportedServiceNames_Static() {   Sequence&lt; OUString &gt; aSNS( 2 );   aSNS[0] = &quot;com.sun.star.sdbc.Driver&quot;;   aSNS[0] = &quot;com.sun.star.sdbcx.Driver&quot;;   return aSNS; }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V519 The &#8216;aSNS[0]&#8217; variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 137, 138. driver.cxx 138<\/p>\n<p>  \u041d\u043e \u0441\u0430\u043c\u043e\u0435 \u0443\u0436\u0430\u0441\u043d\u043e\u0435, \u0447\u0442\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Copy-Paste \u043e\u0448\u0438\u0431\u043a\u0438 \u0440\u0430\u0437\u043c\u043d\u043e\u0436\u0430\u044e\u0442\u0441\u044f. \u041f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e \u044d\u0442\u043e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u044f\u0436\u0451\u043b \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f. \u041f\u043e\u0442\u0435\u0440\u043f\u0438\u0442\u0435.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0435\u0441\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f:<br \/>\n  static bool GetPropertyValue(   ::com::sun::star::uno::Any&amp; rAny,   const ::com::sun::star::uno::Reference&lt;                   ::com::sun::star::beans::XPropertySet &gt; &amp;,   const OUString&amp; rPropertyName,   bool bTestPropertyAvailability = false );<br \/>\n  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 &#8216;bTestPropertyAvailability&#8217; \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c. <\/p>\n<p>  \u0415\u0449\u0451 \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 &#8216;sal_True&#8217;:<br \/>\n  #define sal_True ((sal_Bool)1)<br \/>\n  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u043a\u0430\u043a \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f GetPropertyValue():<br \/>\n  sal_Int32 PPTWriterBase::GetLayoutOffset(&#8230;.) const {   ::com::sun::star::uno::Any aAny;   sal_Int32 nLayout = 20;   if ( GetPropertyValue(            aAny, rXPropSet, OUString( &quot;Layout&quot; ) ), sal_True )     aAny &gt;&gt;= nLayout;    DBG(printf(&quot;GetLayoutOffset %&quot; SAL_PRIdINT32 &quot;\\n&quot;, nLayout));   return nLayout; }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V639 Consider inspecting the expression for &#8216;GetPropertyValue&#8217; function call. It is possible that one of the closing &#8216;)&#8217; brackets was positioned incorrectly. pptx-epptbase.cxx 442<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u0441\u044f, \u0442\u043e \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043a\u0440\u0443\u0433\u043b\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a \u0441\u0442\u043e\u0438\u0442 \u043d\u0435 \u043d\u0430 \u0441\u0432\u043e\u0451\u043c \u043c\u0435\u0441\u0442\u0435. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, \u0444\u0443\u043d\u043a\u0446\u0438\u044f GetPropertyValue() \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0435 &#8216;sal_True&#8217;, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u0440\u0430\u0432\u043d\u043e\u0435 &#8216;false&#8217;).<\/p>\n<p>  \u041d\u043e \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b \u0431\u0435\u0434\u044b. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u043b\u0430\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 &#8216;if&#8217;. \u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<br \/>\n  if (foo(), sal_True)<br \/>\n  \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0437\u0430\u043f\u044f\u0442\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u043f\u0440\u0430\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u043e.<\/p>\n<p>  \u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u044d\u0442\u043e\u043c \u043a\u043e\u0434\u0435 \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 Copy-Paste. \u041e\u0431\u044b\u043a\u043d\u043e\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430. \u041d\u0435 \u0442\u0430\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u043a\u043e\u0431\u043a\u0430. \u0411\u044b\u0432\u0430\u0435\u0442.<\/p>\n<p>  \u041f\u0435\u0447\u0430\u043b\u044c\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0431\u044b\u043b\u0430 \u0440\u0430\u0437\u043c\u043d\u043e\u0436\u0435\u043d\u0430 \u043f\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0415\u0441\u043b\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0443 \u0438\u0441\u043f\u0440\u0430\u0432\u044f\u0442, \u0442\u043e \u0432\u044b\u0441\u043e\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043e\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f.<\/p>\n<p>  Copy-Paste \u043f\u0440\u0438\u0432\u0451\u043b \u043a \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044e \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u0435\u0449\u0451 \u0432 9 \u043c\u0435\u0441\u0442\u0430\u0445:  epptso.cxx 993  epptso.cxx 3677  pptx-text.cxx 518  pptx-text.cxx 524  pptx-text.cxx 546  pptx-text.cxx 560  pptx-text.cxx 566  pptx-text.cxx 584  pptx-text.cxx 590  \u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 3 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043d\u0435\u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0441\u0442\u043e \u043e\u0434\u043d\u0430 \u043b\u0438\u0448\u043d\u044f\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430:<br \/>\n  #define CHECK_N_TRANSLATE( name ) \\   else if (sServiceName == SERVICE_PERSISTENT_COMPONENT_##name) \\     sToWriteServiceName = SERVICE_##name  void OElementExport::exportServiceNameAttribute() {   &#8230;.   CHECK_N_TRANSLATE( FORM );      &lt;&lt;&lt;&lt;&#8212;-   CHECK_N_TRANSLATE( FORM );      &lt;&lt;&lt;&lt;&#8212;-   CHECK_N_TRANSLATE( LISTBOX );   CHECK_N_TRANSLATE( COMBOBOX );   CHECK_N_TRANSLATE( RADIOBUTTON );   CHECK_N_TRANSLATE( GROUPBOX );   CHECK_N_TRANSLATE( FIXEDTEXT );   CHECK_N_TRANSLATE( COMMANDBUTTON );   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V517 The use of &#8216;if (A) {&#8230;} else if (A) {&#8230;}&#8217; pattern was detected. There is a probability of logical error presence. Check lines: 177, 178. elementexport.cxx 177<\/p>\n<p>  \u041d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e, \u043d\u043e \u043d\u0435\u0434\u043e\u0447\u0451\u0442. \u0415\u0449\u0451 \u0434\u0432\u0435 \u043b\u0438\u0448\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0437\u0434\u0435\u0441\u044c:  querydesignview.cxx 3484  querydesignview.cxx 3486<br \/>\n  \u0425\u0440\u0430\u0431\u0440\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 realloc()<br \/>\n  \u0424\u0443\u043d\u043a\u0446\u0438\u044f realloc() \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u043e\u043b\u044c \u044f\u0432\u043d\u043e \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e, \u0447\u0442\u043e \u044f \u043d\u0435 \u0440\u0438\u0441\u043a\u0443\u044e \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u043e\u0439. \u0412\u0438\u0434\u0438\u043c\u043e, \u044d\u0442\u043e \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u0440\u043e\u0432. \u0420\u0430\u0437 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f malloc()\/realloc(), \u0442\u043e \u043f\u0443\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043b\u0443\u0447\u0448\u0435 \u0441\u0440\u0430\u0437\u0443 \u0443\u043f\u0430\u0434\u0451\u0442. \u041d\u0435\u0447\u0435\u0433\u043e \u00ab\u0431\u0440\u044b\u043a\u0430\u0442\u044c\u0441\u044f\u00bb. \u0412\u0441\u0435 \u0440\u0430\u0432\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0432\u0440\u044f\u0434 \u043b\u0438 \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0432\u044b\u0439\u0434\u0435\u0442. \u041d\u043e \u043d\u0435 \u0447\u0435\u0441\u0442\u043d\u043e \u0437\u0430\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u044b\u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0437\u0430 \u043b\u043e\u0436\u043d\u044b\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0443.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438\u0437\u0443\u0447\u0438\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 add() \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 FastAttributeList:<br \/>\n  void FastAttributeList::add(sal_Int32 nToken,   const sal_Char* pValue, size_t nValueLength ) {   maAttributeTokens.push_back( nToken );   sal_Int32 nWritePosition = maAttributeValues.back();   maAttributeValues.push_back( maAttributeValues.back() +                                nValueLength + 1 );   if (maAttributeValues.back() &gt; mnChunkLength)   {      mnChunkLength = maAttributeValues.back();      mpChunk = (sal_Char *) realloc( mpChunk, mnChunkLength );   }   strncpy(mpChunk + nWritePosition, pValue, nValueLength);   mpChunk[nWritePosition + nValueLength] = &#8216;\\0&#8217;; }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V701 realloc() possible leak: when realloc() fails in allocating memory, original pointer &#8216;mpChunk&#8217; is lost. Consider assigning realloc() to a temporary pointer. fastattribs.cxx 88<\/p>\n<p>  \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0431\u0435\u0434\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 realloc(). \u0411\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e, \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u0440\u0435\u0434\u043a\u0430. \u041d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u2014 \u044d\u0442\u043e \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c. \u0422\u043e\u0433\u0434\u0430 realloc() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 NULL. \u0414\u0430\u043b\u0435\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f strncpy() \u043d\u0430\u0447\u043d\u0451\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u043f\u043e\u0439\u043c\u0438 \u043a\u0443\u0434\u0430:<br \/>\n     mpChunk = (sal_Char *) realloc( mpChunk, mnChunkLength ); } strncpy(mpChunk + nWritePosition, pValue, nValueLength);<br \/>\n  \u041d\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0443 \u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u043e\u0435. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u0448\u0438\u0431\u043e\u043a. \u0418 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u0441\u0432\u043e\u0451 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435. \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 memory leak. \u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e mpChunk \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u043d 0, \u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u0443\u0436\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041f\u043e\u044f\u0441\u043d\u044e \u044d\u0442\u043e\u0442 \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043e\u0448\u0438\u0431\u043a\u0438 \u0447\u0443\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435. \u041c\u043d\u043e\u0433\u0438\u0435 \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 realloc().<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430:<\/p>\n<p>  char *p = (char *)malloc(10);  &#8230;.  p = (char *)realloc(p, 10000);<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c, \u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f &#8216;p&#8217; \u0431\u0443\u0434\u0435\u0442 \u00ab\u0438\u0441\u043f\u043e\u0440\u0447\u0435\u043d\u0430\u00bb. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c, \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0445\u0440\u0430\u043d\u0438\u043b\u0441\u044f \u0432 &#8216;p&#8217;.<\/p>\n<p>  \u0412 \u0442\u0430\u043a\u043e\u043c \u0432\u0438\u0434\u0435 \u043e\u0448\u0438\u0431\u043a\u0430 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430. \u041d\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0430\u0441\u0442\u043e. \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0432\u044b\u0434\u0430\u0451\u0442 \u0435\u0449\u0451 8 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0441\u043c\u044b\u0441\u043b\u0430 \u043d\u0435\u0442. \u0412\u0441\u0435 \u0440\u0430\u0432\u043d\u043e LibreOffice \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0430\u043c\u044f\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430.<\/p>\n<p>  \u041e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043b\u043e\u0433\u0438\u043a\u0435<br \/>\n  \u0412\u0441\u0442\u0440\u0435\u0442\u0438\u043b\u043e\u0441\u044c \u0440\u044f\u0434 \u0437\u0430\u0431\u0430\u0432\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445. \u041f\u0440\u0438\u0447\u0438\u043d\u044b, \u0432\u0438\u0434\u0438\u043c\u043e, \u0440\u0430\u0437\u043d\u044b\u0435: \u043d\u0435\u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u043d\u0438\u0435 \u044f\u0437\u044b\u043a\u0430.<\/p>\n<p>  void ScPivotLayoutTreeListData::PushDataFieldNames(&#8230;.) {   &#8230;.   ScDPLabelData* pLabelData = mpParent-&gt;GetLabelData(nColumn);    if (pLabelData == NULL &amp;&amp; pLabelData-&gt;maName.isEmpty())     continue;   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V522 Dereferencing of the null pointer &#8216;pLabelData&#8217; might take place. Check the logical condition. pivotlayouttreelistdata.cxx 157<\/p>\n<p>  \u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0443\u043b\u0435\u0432\u043e\u0439, \u0442\u043e \u043c\u044b \u0435\u0433\u043e \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u0443\u0435\u043c. \u041a\u0430\u043a \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u0437\u0434\u0435\u0441\u044c \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 ||.<\/p>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430:<br \/>\n  void grabFocusFromLimitBox( OQueryController&amp; _rController ) {   &#8230;.   vcl::Window* pWindow = VCLUnoHelper::GetWindow( xWindow );   if( pWindow || pWindow-&gt;HasChildPathFocus() )   {     pWindow-&gt;GrabFocusToDocument();   }   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V522 Dereferencing of the null pointer &#8216;pWindow&#8217; might take place. Check the logical condition. querycontroller.cxx 293<\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0432\u043c\u0435\u0441\u0442\u043e &#8216;||&#8217; \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c &#8216;&amp;&amp;&#8217;.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435:<br \/>\n  enum SbxDataType {   SbxEMPTY    =  0,   SbxNULL     =  1,   &#8230;. };  void SbModule::GetCodeCompleteDataFromParse(CodeCompleteDataCache&amp; aCache) {   &#8230;.   if( (pSymDef-&gt;GetType() != SbxEMPTY) ||       (pSymDef-&gt;GetType() != SbxNULL) )   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V547 Expression is always true. Probably the &#8216;&amp;&amp;&#8217; operator should be used here. sbxmod.cxx 1777<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043f\u0435\u0440\u0435\u043f\u0438\u0448\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435:<br \/>\n  if (type != 0 || type != 1)<br \/>\n  \u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u043e.<\/p>\n<p>  \u0414\u0432\u0435 \u043f\u043e\u0445\u043e\u0436\u0438\u0445 \u043e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0437\u0434\u0435\u0441\u044c:  V547 Expression is always true. Probably the &#8216;&amp;&amp;&#8217; operator should be used here. sbxmod.cxx 1785  V547 Expression is always false. Probably the &#8216;||&#8217; operator should be used here. xmlstylesexporthelper.cxx 223<br \/>\n  \u0412\u0441\u0442\u0440\u0435\u0442\u0438\u043b\u043e\u0441\u044c \u0434\u0432\u0430 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u043c. \u042f \u0434\u0443\u043c\u0430\u044e \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0438:<br \/>\n  sal_uInt16 ScRange::ParseCols(&#8230;.) {   &#8230;.   const sal_Unicode* p = rStr.getStr();   &#8230;.   case formula::FormulaGrammar::CONV_XL_R1C1:     if ((p[0] == &#8216;C&#8217; || p[0] != &#8216;c&#8217;) &amp;&amp;         NULL != (p = lcl_r1c1_get_col(                           p, rDetails, &amp;aStart, &amp;ignored )))     {   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V590 Consider inspecting the &#8216;p[0] == &#8216;C&#8217; || p[0] != &#8216;c&#187; expression. The expression is excessive or contains a misprint. address.cxx 1593<\/p>\n<p>  \u0423\u0441\u043b\u043e\u0432\u0438\u0435 (p[0] == &#8216;C&#8217; || p[0] != &#8216;c&#8217;) \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0434\u043e (p[0] != &#8216;c&#8217;). \u0423\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0438\u043c: (p[0] == &#8216;C&#8217; || p[0] == &#8216;c&#8217;).<\/p>\n<p>  \u0418\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 \u0444\u0430\u0439\u043b\u0435 \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435:  V590 Consider inspecting the &#8216;p[0] == &#8216;R&#8217; || p[0] != &#8216;r&#187; expression. The expression is excessive or contains a misprint. address.cxx 1652<br \/>\n  \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u043a \u043e\u0448\u0438\u0431\u043a\u0430\u043c \u0432 \u043b\u043e\u0433\u0438\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043d\u0435\u0441\u0442\u0438 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0430 \u043f\u043e\u0442\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u043d\u0443\u043b\u044e. \u042d\u0442\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u043d\u0435\u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043a\u043e\u0434\u0430.<\/p>\n<p>  \u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440:<br \/>\n  IMPL_LINK(&#8230;.) {   &#8230;.   SystemWindow *pSysWin = pWindow-&gt;GetSystemWindow();   MenuBar      *pMBar   = pSysWin-&gt;GetMenuBar();   if ( pSysWin &amp;&amp; pMBar )   {     AddMenuBarIcon( pSysWin, true );   }   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V595 The &#8216;pSysWin&#8217; pointer was utilized before it was verified against nullptr. Check lines: 738, 739. updatecheckui.cxx 738<\/p>\n<p>  \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c &#8216;pSysWin&#8217; \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 &#8216;pSysWin-&gt;GetMenuBar()&#8217;. \u0417\u0430\u0442\u0435\u043c \u043e\u043d \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u043d\u0443\u043b\u044e.<\/p>\n<p>  \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044f\u043c LibreOffice \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0432\u043e\u0442 \u043d\u0430 \u044d\u0442\u0438 \u043c\u0435\u0441\u0442\u0430: LibreOffice-V595.txt.<\/p>\n<p>  \u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f, \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043b\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e \u043c\u0435\u0441\u0442\u043e. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0431\u044b\u043a\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435:<br \/>\n  enum BRC_Sides {     WW8_TOP = 0, WW8_LEFT = 1, WW8_BOT = 2,     WW8_RIGHT = 3, WW8_BETW = 4 };<br \/>\n  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0442\u0435\u043f\u0435\u043d\u044c\u044e \u0434\u0432\u043e\u0439\u043a\u0438. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0438\u0441\u043b\u0430. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0442\u0430\u043c \u0435\u0441\u0442\u044c 0.<\/p>\n<p>  \u0410 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u044d\u0442\u0438\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438, \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043e\u043d\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0434\u0432\u043e\u0439\u043a\u0438. \u041f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u043c\u0430\u0441\u043a\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0442\u044b:<br \/>\n  void SwWW8ImplReader::Read_Border(&#8230;.) {   &#8230;.   if ((nBorder &amp; WW8_LEFT)==WW8_LEFT)     aBox.SetDistance(       (sal_uInt16)aInnerDist.Left(), BOX_LINE_LEFT );    if ((nBorder &amp; WW8_TOP)==WW8_TOP)     aBox.SetDistance(       (sal_uInt16)aInnerDist.Top(), BOX_LINE_TOP );    if ((nBorder &amp; WW8_RIGHT)==WW8_RIGHT)     aBox.SetDistance(        (sal_uInt16)aInnerDist.Right(), BOX_LINE_RIGHT );    if ((nBorder &amp; WW8_BOT)==WW8_BOT)     aBox.SetDistance(        (sal_uInt16)aInnerDist.Bottom(), BOX_LINE_BOTTOM );   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V616 The &#8216;WW8_TOP&#8217; named constant with the value of 0 is used in the bitwise operation. ww8par6.cxx 4742<\/p>\n<p>  \u042d\u0442\u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0441\u043b\u043e\u0432\u0438\u0435 ((nBorder &amp; WW8_TOP)==WW8_TOP) \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u043e. \u0414\u043b\u044f \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044e \u0447\u0438\u0441\u043b\u0430: ((nBorder &amp; 0)==0).<\/p>\n<p>  \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u043d\u0430 WW8_LEFT, \u0435\u0441\u043b\u0438 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 nBorder \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 WW8_RIGHT, \u0440\u0430\u0432\u043d\u043e\u0435 3. \u041f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c ((3 &amp; 1) == 1). \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e WW8_RIGHT \u043f\u0440\u0438\u043c\u0435\u043c \u0437\u0430 WW8_LEFT.<\/p>\n<p>  \u0421\u043a\u0435\u043b\u0435\u0442 \u0432 \u0448\u043a\u0430\u0444\u0443<br \/>\n  \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u043d\u043e\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u0432 \u043a\u043e\u0434\u0435. \u042d\u0442\u043e \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u0430 \u0445\u0438\u0442\u0440\u0430\u044f \u0437\u0430\u0434\u0443\u043c\u043a\u0430. \u0422\u0440\u043e\u0433\u0430\u0442\u044c \u0438\u0445 \u0441\u043c\u044b\u0441\u043b\u0430 \u043d\u0435\u0442, \u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \u0412\u043e\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u0433\u0434\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0443 \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 free():<br \/>\n  \/* This operator is supposed to be unimplemented, but that now leads  * to compilation and\/or linking errors with MSVC2008. (Don&#8217;t know  * about MSVC2010.) As it can be left unimplemented just fine with  * gcc, presumably it is never called. So do implement it then to  * avoid the compilation and\/or linking errors, but make it crash  * intentionally if called.  *\/ void SimpleReferenceObject::operator delete[](void * \/* pPtr *\/) {   free(NULL); }<br \/>\n  \u0422\u0435\u0445\u043d\u0438\u043a\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 <\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0432\u044b\u044f\u0432\u0438\u043b \u0440\u044f\u0434 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u043a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u043f\u0430\u0441\u043d\u044b\u043c. \u041e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u0438\u0440\u043e\u0434\u0435, \u043d\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u0438\u0445 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432 \u043e\u0434\u0438\u043d \u0440\u0430\u0437\u0434\u0435\u043b.<br \/>\n  void writeError( const char* errstr ) {   FILE* ferr = getErrorFile( 1 );   if ( ferr != NULL )   {     fprintf( ferr, errstr );     fflush( ferr );   } }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V618 It&#8217;s dangerous to call the &#8216;fprintf&#8217; function in such a manner, as the line being passed could contain format specification. The example of the safe code: printf(&quot;%s&quot;, str); unoapploader.c 405<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 &#8216;errstr&#8217; \u0432\u0441\u0442\u0440\u0435\u0442\u044f\u0442\u0441\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b, \u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u0441\u0451, \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0443\u043f\u0430\u0441\u0442\u044c, \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0444\u0430\u0439\u043b \u043c\u0443\u0441\u043e\u0440 \u0438\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0451 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438). <\/p>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a:<br \/>\n  fprintf( ferr, &quot;%s&quot;, errstr );<br \/>\n  \u0415\u0449\u0451 \u0434\u0432\u0430 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f printf():  climaker_app.cxx 261  climaker_app.cxx 313<br \/>\n  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e \u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 dynamic_cast.<br \/>\n  virtual ~LazyFieldmarkDeleter() {   dynamic_cast&lt;Fieldmark&amp;&gt;     (*m_pFieldmark.get()).ReleaseDoc(m_pDoc); }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V509 The &#8216;dynamic_cast&lt;T&amp;&gt;&#8217; operator should be located inside the try..catch block, as it could potentially generate an exception. Raising exception inside the destructor is illegal. docbm.cxx 846<\/p>\n<p>  \u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 dynamic_cast \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 std::bad_cast.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0435\u043a\u0430, \u0432 \u0445\u043e\u0434\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0440\u0430\u0437\u0440\u0443\u0448\u0430\u044e\u0442\u0441\u044f \u043f\u0443\u0442\u0435\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u0432. \u0415\u0441\u043b\u0438 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0440\u0430\u0437\u0440\u0443\u0448\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u0438 \u0441\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u0435\u043a\u0430, \u0431\u0440\u043e\u0441\u0430\u0435\u0442 \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0438 \u044d\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0438\u0434\u0430\u0435\u0442 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 C++ \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u0432\u044b\u0437\u044b\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044e terminate(). \u0418\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442, \u0447\u0442\u043e \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0431\u0440\u043e\u0448\u0435\u043d\u043d\u043e\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430, \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430.<\/p>\n<p>  \u041f\u043e \u044d\u0442\u043e\u0439 \u0436\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043e\u043f\u0430\u0441\u043d\u043e \u0432 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 new. \u042d\u0442\u043e\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u0440\u0438 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 std::bad_alloc. \u0425\u043e\u0440\u043e\u0448\u0438\u043c \u0442\u043e\u043d\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0433\u043e \u0432 \u0431\u043b\u043e\u043a try-catch.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430:<br \/>\n  WinMtfOutput::~WinMtfOutput() {   mpGDIMetaFile-&gt;AddAction( new MetaPopAction() );   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f PVS-Studio: V509 The &#8216;new&#8217; operator should be located inside the try..catch block, as it could potentially generate an exception. Raising exception inside the destructor is illegal. winmtf.cxx 852<\/p>\n<p>  \u041f\u0440\u043e\u0447\u0438\u0435 \u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435:  V509 The &#8216;dynamic_cast&lt;T&amp;&gt;&#8217; operator should be located inside the try..catch block, as it could potentially generate an exception. Raising exception inside the destructor is illegal. ndtxt.cxx 4886  V509 The &#8216;new&#8217; operator should be located inside the try..catch block, as it could potentially generate an exception. Raising exception inside the destructor is illegal. export.cxx 279  V509 The &#8216;new&#8217; operator should be located inside the try..catch block, as it could potentially generate an exception. Raising exception inside the destructor is illegal. getfilenamewrapper.cxx 73  V509 The &#8216;new&#8217; operator should be located inside the try..catch block, as it could potentially generate an exception. Raising exception inside the destructor is illegal. e3dsceneupdater.cxx 80  V509 The &#8216;new&#8217; operator should be located inside the try..catch block, as it could potentially generate an exception. Raising exception inside the destructor is illegal. accmap.cxx 1683  V509 The &#8216;new&#8217; operator should be located inside the try..catch block, as it could potentially generate an exception. Raising exception inside the destructor is illegal. frmtool.cxx 938<br \/>\n  \u041a\u0441\u0442\u0430\u0442\u0438, \u0440\u0430\u0437 \u043f\u043e\u0448\u043b\u0430 \u0440\u0435\u0447\u044c \u043f\u0440\u043e operator new, \u0442\u043e \u043e\u0442\u043c\u0435\u0447\u0443 \u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430:<br \/>\n  extern &quot;C&quot; oslFileHandle SAL_CALL osl_createFileHandleFromOSHandle(   HANDLE     hFile,   sal_uInt32 uFlags) {   if ( !IsValidHandle(hFile) )       return 0; \/\/ EINVAL    FileHandle_Impl * pImpl = new FileHandle_Impl(hFile);   if (pImpl == 0)   {     \/\/ cleanup and fail     (void) ::CloseHandle(hFile);     return 0; \/\/ ENOMEM   }   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V668 There is no sense in testing the &#8216;pImpl&#8217; pointer against null, as the memory was allocated using the &#8216;new&#8217; operator. The exception will be generated in the case of memory allocation error. file.cxx 663<\/p>\n<p>  \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;new&#8217; \u043f\u0440\u0438 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0422\u0430\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0435\u0440\u043d\u0443\u043b \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430. \u041e\u043d \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0435 \u0440\u0430\u0432\u0435\u043d 0. \u041f\u0440\u0438 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f CloseHandle():<br \/>\n  FileHandle_Impl * pImpl = new FileHandle_Impl(hFile); if (pImpl == 0) {   \/\/ cleanup and fail   (void) ::CloseHandle(hFile);   return 0; \/\/ ENOMEM }<br \/>\n  \u042f \u043c\u043e\u0433\u0443 \u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f. \u042f \u043d\u0435 \u0437\u043d\u0430\u044e \u043f\u0440\u043e\u0435\u043a\u0442 LibreOffice. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;new&#8217; \u043d\u0435 \u043a\u0438\u0434\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 nullptr. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0442\u0430\u043a, \u0442\u043e \u043f\u0440\u043e\u0448\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c V668. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043d\u0435 \u043c\u0435\u0448\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 new \u043a\u0438\u0434\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0442\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 126 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439: LibreOffice-V668.txt.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 DllMain:<br \/>\n  BOOL WINAPI DllMain( HINSTANCE hinstDLL,                      DWORD fdwReason, LPVOID lpvReserved ) {   &#8230;.   CreateThread( NULL, 0, ParentMonitorThreadProc,                 (LPVOID)dwParentProcessId, 0, &amp;dwThreadId );   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V718 The &#8216;CreateThread&#8217; function should not be called from &#8216;DllMain&#8217; function. dllentry.c 308<\/p>\n<p>  \u0412\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 DllMain() \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0438\u043d\u044b\u043c \u043e\u0448\u0438\u0431\u043a\u0430\u043c. \u0418\u043c\u0435\u043d\u043d\u043e \u043a \u0442\u0430\u043a\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f CreateThread().<\/p>\n<p>  \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0441 DllMain \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 MSDN: Dynamic-Link Library Best Practices.<\/p>\n<p>  \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u043e\u043d \u043e\u043f\u0430\u0441\u0435\u043d \u0438 \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0432\u0435\u0441\u0442\u0438.<\/p>\n<p>  \u0412\u0441\u0442\u0440\u0435\u0442\u0438\u043b\u0430\u0441\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u0433\u0434\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f wcsncpy() \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0431\u0443\u0444\u0435\u0440\u0430:<br \/>\n  typedef struct {   &#8230;.   WCHAR wszTitle[MAX_COLUMN_NAME_LEN];   WCHAR wszDescription[MAX_COLUMN_DESC_LEN]; } SHCOLUMNINFO, *LPSHCOLUMNINFO;  HRESULT STDMETHODCALLTYPE CColumnInfo::GetColumnInfo(   DWORD dwIndex, SHCOLUMNINFO *psci) {   &#8230;.   wcsncpy(psci-&gt;wszTitle,           ColumnInfoTable[dwIndex].wszTitle,           (sizeof(psci-&gt;wszTitle) &#8212; 1));   return S_OK; }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V512 A call of the &#8216;wcsncpy&#8217; function will lead to overflow of the buffer &#8216;psci-&gt;wszTitle&#8217;. columninfo.cxx 129<\/p>\n<p>  \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 (sizeof(psci-&gt;wszTitle) \u2014 1) \u043d\u0435\u0432\u0435\u0440\u043d\u043e. \u0417\u0430\u0431\u044b\u043b\u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430:<br \/>\n  (sizeof(psci-&gt;wszTitle) \/ sizeof(psci-&gt;wszTitle[0]) &#8212; 1)<br \/>\n  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0442\u0438\u043f \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439 memset(). \u041f\u0440\u0438\u043c\u0435\u0440:<br \/>\n  static void __rtl_digest_updateMD2 (DigestContextMD2 *ctx) {   &#8230;.   sal_uInt32 state[48];   &#8230;.   memset (state, 0, 48 * sizeof(sal_uInt32)); }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V597 The compiler could delete the &#8216;memset&#8217; function call, which is used to flush &#8216;state&#8217; buffer. The RtlSecureZeroMemory() function should be used to erase the private data. digest.cxx 337<\/p>\n<p>  \u042f \u0443\u0436\u0435 \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437 \u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u044d\u0442\u043e\u0442 \u0432\u0438\u0434 \u043e\u0448\u0438\u0431\u043a\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0438\u0448\u0443 \u0435\u0451 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043f\u0430\u0440\u043e\u0439 \u0441\u043b\u043e\u0432, \u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c, \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043f\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0441\u0441\u044b\u043b\u043a\u0430\u043c.<\/p>\n<p>  \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432 \u043f\u0440\u0430\u0432\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 memset(), \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0435\u0451 \u0432\u044b\u0437\u043e\u0432\u0430 \u043e\u0431\u043d\u0443\u043b\u0451\u043d\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438:  V597. The compiler could delete the &#8216;memset&#8217; function call, which is used to flush &#8216;Foo&#8217; buffer.  \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u2014 \u0437\u0430\u0447\u0435\u043c?  Zero and forget \u2014 caveats of zeroing memory in C.  \u041f\u0440\u043e\u0447\u0438\u0435 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u043d\u0435 \u0447\u0438\u0441\u0442\u044f\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435: LibreOffice-V597.txt.<\/p>\n<p>  \u0412\u0441\u044f\u043a\u043e\u0435 \u0440\u0430\u0437\u043d\u043e\u0435<br \/>\n  Guess::Guess() {   language_str = DEFAULT_LANGUAGE;   country_str = DEFAULT_COUNTRY;   encoding_str = DEFAULT_ENCODING; }  Guess::Guess(const char * guess_str) {   Guess();   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V603 The object was created but it is not being used. If you wish to call constructor, &#8216;this-&gt;Guess::Guess(&#8230;.)&#8217; should be used. guess.cxx 56<\/p>\n<p>  \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442, \u043d\u0430\u043f\u0438\u0441\u0430\u0432\u0448\u0438\u0439 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434, \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u0435\u0442 \u044f\u0437\u044b\u043a \u0421\u0438++. \u041e\u043d \u0445\u043e\u0442\u0435\u043b \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e. \u041d\u043e, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043e\u043d \u0441\u043e\u0437\u0434\u0430\u043b \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043d\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442. \u0418\u0437-\u0437\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0442\u0430\u043a \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440: camera3d.cxx 46<br \/>\n  sal_uInt32 readIdent(&#8230;.) {   size_t nItems = rStrings.size();   const sal_Char** pStrings = new const sal_Char*[ nItems+1 ];   &#8230;.   delete pStrings;   return nRet; }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V611 The memory was allocated using &#8216;new T[]&#8217; operator but was released using the &#8216;delete&#8217; operator. Consider inspecting this code. It&#8217;s probably better to use &#8216;delete [] pStrings;&#8217;. profile.hxx 103<\/p>\n<p>  \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0431\u0443\u0434\u0435\u0442: delete [] pStrings;.<\/p>\n<p>  \u0415\u0449\u0451 \u043e\u0434\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438:  V611 The memory was allocated using &#8216;new T[]&#8217; operator but was released using the &#8216;delete&#8217; operator. Consider inspecting this code. It&#8217;s probably better to use &#8216;delete [] pStrings;&#8217;. profile.hxx 134  static const int kConventionShift = 16; static const int kFlagMask = ~((~int(0)) &lt;&lt; kConventionShift);<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V610 Undefined behavior. Check the shift operator &#8216;&lt;&lt;&#8216;. The left operand &#8216;(~int (0))&#8217; is negative. grammar.hxx 56<\/p>\n<p>  \u0418\u043c\u0435\u0435\u0442 \u043c\u0435\u0441\u0442\u043e \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438\u0437-\u0437\u0430 \u0441\u0434\u0432\u0438\u0433\u0430 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438).<br \/>\n  sal_Int32 GetMRest() const {return m_nRest;}  OUString LwpBulletStyleMgr::RegisterBulletStyle(&#8230;.) {   &#8230;.   if (pIndent-&gt;GetMRest() &gt; 0.001)   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V674 The &#8216;0.001&#8217; literal of the &#8216;double&#8217; type is compared to a value of the &#8216;long&#8217; type. Consider inspecting the &#8216;pIndent-&gt;GetMRest() &gt; 0.001&#8217; expression. lwpbulletstylemgr.cxx 177<\/p>\n<p>  \u0427\u0442\u043e-\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0442\u0430\u043a. \u041d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441 0.001.<\/p>\n<p>  \u041d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u0430\u044f \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0430 \u0441 \u0442\u0438\u043f\u043e\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<br \/>\n  BOOL SHGetSpecialFolderPath(   HWND hwndOwner,   _Out_  LPTSTR lpszPath,   _In_   int csidl,   _In_   BOOL fCreate );  #define FAILED(hr) (((HRESULT)(hr)) &lt; 0)  OUString UpdateCheckConfig::getDesktopDirectory() {   &#8230;.   if( ! FAILED( SHGetSpecialFolderPathW( &#8230;. ) ) )   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V716 Suspicious type conversion: BOOL -&gt; HRESULT. updatecheckconfig.cxx 193<\/p>\n<p>  \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e SHGetSpecialFolderPath() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0438\u043f HRESULT. \u041d\u043e, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 BOOL. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0434, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043c\u0430\u043a\u0440\u043e\u0441 FAILED.<\/p>\n<p>  \u0415\u0449\u0451 \u043e\u0434\u043d\u0430 \u0442\u0430\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430: updatecheckconfig.cxx 222<\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043c\u0430\u043a\u0440\u043e\u0441\u0430 FAILED. \u0422\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u0442\u0438\u043f\u0430 HRESULT \u043d\u0435\u043b\u044c\u0437\u044f:<br \/>\n  bool UniscribeLayout::LayoutText( ImplLayoutArgs&amp; rArgs ) {   &#8230;.   HRESULT nRC = ScriptItemize(&#8230;.);   if( !nRC ) \/\/ break loop when everything is correctly itemized     break;   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V545 Such conditional expression of &#8216;if&#8217; operator is incorrect for the HRESULT type value &#8216;nRC&#8217;. The SUCCEEDED or FAILED macro should be used instead. winlayout.cxx 1115<\/p>\n<p>  \u0414\u0443\u043c\u0430\u044e, \u0437\u0434\u0435\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u0430\u043f\u044f\u0442\u0443\u044e \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439:<br \/>\n  void Reader::ClearTemplate() {     if( pTemplate )     {         if( 0 == pTemplate-&gt;release() )             delete pTemplate,         pTemplate = 0;     } }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V626 Consider checking for misprints. It&#8217;s possible that &#8216;,&#8217; should be replaced by &#8216;;&#8217;. shellio.cxx 549<\/p>\n<p>  \u041d\u0435\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043c\u0435\u043b\u043e\u0447\u044c:<br \/>\n  void TabBar::ImplInit( WinBits nWinStyle ) {   &#8230;.   mbMirrored = false;   mbMirrored = false;   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V519 The &#8216;mbMirrored&#8217; variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 415, 416. tabbar.cxx 416<\/p>\n<p>  \u0418 \u0437\u0434\u0435\u0441\u044c \u0435\u0449\u0451: V519 The &#8216;aParam.mpPreviewFontSet&#8217; variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 4561, 4562. output2.cxx 4562<\/p>\n<p>  \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0430\u044f \u0434\u043b\u0438\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0438:<br \/>\n  static bool CallRsc2(&#8230;.) {   &#8230;.   if( !rsc_strnicmp( &#8230;.,  &quot;-fp=&quot;, 4 ) ||       !rsc_strnicmp( &#8230;., &quot;-fo=&quot;, 4 ) ||       !rsc_strnicmp( &#8230;., &quot;-presponse&quot;, 9 ) ||   &lt;&lt;&lt;&lt;&#8212;-       !rsc_strnicmp( &#8230;., &quot;-rc&quot;, 3 ) ||       !rsc_stricmp( &#8230;., &quot;-+&quot; ) ||       !rsc_stricmp( &#8230;., &quot;-br&quot; ) ||       !rsc_stricmp( &#8230;., &quot;-bz&quot; ) ||       !rsc_stricmp( &#8230;., &quot;-r&quot; ) ||       ( &#8216;-&#8216; != *&#8230;. ) )   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V666 Consider inspecting third argument of the function &#8216;rsc_strnicmp&#8217;. It is possible that the value does not correspond with the length of a string which was passed with the second argument. start.cxx 179<\/p>\n<p>  \u0414\u043b\u0438\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 &quot;-presponse&quot; 10, \u0430 \u043d\u0435 9 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432.<\/p>\n<p>  \u0421\u0442\u0440\u0430\u043d\u043d\u044b\u0439 &#8216;break&#8217; \u0432\u043d\u0443\u0442\u0440\u0438 \u0446\u0438\u043a\u043b\u0430:<br \/>\n  OUString getExtensionFolder(&#8230;.) {   &#8230;.   while (xResultSet-&gt;next())   {     title = Reference&lt;sdbc::XRow&gt;(       xResultSet, UNO_QUERY_THROW )-&gt;getString(1 \/* Title *\/ ) ;     break;   }   return title; }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V612 An unconditional &#8216;break&#8217; within a loop. dp_manager.cxx 100<\/p>\n<p>  \u0415\u0449\u0451 \u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u0430:  V612 An unconditional &#8216;break&#8217; within a loop. svdfppt.cxx 3260  V612 An unconditional &#8216;break&#8217; within a loop. svdfppt.cxx 3311  V612 An unconditional &#8216;break&#8217; within a loop. personalization.cxx 454<br \/>\n  \u041c\u0430\u043b\u043e\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0435 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f:<br \/>\n  BSTR PromptNew(long hWnd) {   &#8230;.   ADOConnection* piTmpConnection = NULL;    ::CoInitialize( NULL );    hr = CoCreateInstance(                 CLSID_DataLinks,                 NULL,                 CLSCTX_INPROC_SERVER,                  IID_IDataSourceLocator,                 (void**)&amp;dlPrompt                 );   if( FAILED( hr ) )   {     piTmpConnection-&gt;Release();     dlPrompt-&gt;Release( );     return connstr;   }   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V522 Dereferencing of the null pointer &#8216;piTmpConnection&#8217; might take place. adodatalinks.cxx 84<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u0444\u0443\u043d\u043a\u0446\u0438\u044f CoCreateInstance() \u0432\u0435\u0440\u043d\u0451\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u0448\u0438\u0431\u043a\u0438, \u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f &#8216;piTmpConnection&#8217; \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0432\u0435\u043d NULL.<\/p>\n<p>  \u041c\u0438\u043a\u0440\u043e\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438<br \/>\n  \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043d\u0438 \u0432 \u043a\u043e\u0435\u0439 \u043c\u0435\u0440\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0433\u0434\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443.<\/p>\n<p>  \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u0435\u0441\u0442\u0430 \u0432 \u043a\u043e\u0434\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c. \u041d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u041d\u043e \u0445\u0443\u0436\u0435 \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u0440\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u0441\u043a\u043e\u0440\u0435\u0435 \u043e \u0445\u043e\u0440\u043e\u0448\u0435\u043c \u0441\u0442\u0438\u043b\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0432\u044b\u0434\u0430\u0451\u0442 PVS-Studio \u043a\u0430\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0438\u043a\u0440\u043e\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435<br \/>\n  \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u0442\u043e \u044d\u0441\u0442\u0435\u0442\u0438\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435, \u0430 \u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u044d\u0442\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043d\u0435 \u043a\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c. \u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438, \u0442\u043e \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0437\u0440\u044f \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440:<br \/>\n  string getexe(string exename, bool maybeempty) {   char* cmdbuf;   size_t cmdlen;   _dupenv_s(&amp;cmdbuf, &amp;cmdlen, exename.c_str());   if(!cmdbuf) {     if (maybeempty) {       return string();     }     cout &lt;&lt; &quot;Error &quot; &lt;&lt; exename &lt;&lt; &quot; not defined. &quot;       &quot;Did you forget to source the environment?&quot; &lt;&lt; endl;     exit(1);   }   string command(cmdbuf);   free(cmdbuf);   return command; }<br \/>\n  \u041e\u0431\u044a\u0435\u043a\u0442 &#8216;exename&#8217; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442: V813 Decreased performance. The &#8216;exename&#8217; argument should probably be rendered as a constant reference. wrapper.cxx 18<\/p>\n<p>  \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<br \/>\n  string getexe(const string &amp;exename, bool maybeempty)<br \/>\n  \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u00ab\u0441\u0440\u0435\u0437\u043a\u0438\u00bb. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0443\u0442\u044c, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a 20 \u043f\u0440\u0430\u0432\u0438\u043b\u0443 \u00ab\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430 const \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e\u00bb \u0438\u0437 \u043a\u043d\u0438\u0433\u0438:<\/p>\n<p>  \u041c\u044d\u0439\u0435\u0440\u0441 \u0421. \u00ab\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 C++. 55 \u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0438 \u043a\u043e\u0434 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u00bb \u2014 \u041c.: \u0414\u041c\u041a \u041f\u0440\u0435\u0441\u0441, 2006. \u2014 300 \u0441.: \u0438\u043b. ISBN 5-94074-304-8<\/p>\n<p>  \u0415\u0449\u0451 \u043e\u0434\u043d\u043e\u0439 \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f V801. \u0412\u0441\u0435\u0433\u043e, \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0432\u044b\u0434\u0430\u043b 465 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439, \u0433\u0434\u0435 \u043d\u0430 \u0435\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435: LibreOffice-V801-V813.txt.<\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u043e\u0433\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430<br \/>\n  \u0414\u043b\u044f \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u043e\u0433\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043f\u0440\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u00ab\u041f\u0440\u0430\u0432\u0438\u043b\u043e 6. \u0420\u0430\u0437\u043b\u0438\u0447\u0430\u0439\u0442\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430 \u0438 \u0434\u0435\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u00bb \u0438\u0437 \u043a\u043d\u0438\u0433\u0438:<\/p>\n<p>  \u041c\u0435\u0439\u0435\u0440\u0441 \u0421. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0421++. 35 \u043d\u043e\u0432\u044b\u0445 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043f\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432: \u041f\u0435\u0440. \u0441 \u0430\u043d\u0433\u043b. \u2014 \u041c.: \u0414\u041c\u041a \u041f\u0440\u0435\u0441\u0441, 2000. \u2014 304 \u0441.: \u0438\u043b. (\u0421\u0435\u0440\u0438\u044f \u00ab\u0414\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432\u00bb). ISBN 5-94074-033-2. \u0411\u0411\u041a 32.973.26-018.1.<\/p>\n<p>  \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0434\u0443\u043c\u0430\u043d\u043d\u043e\u0439 \u0438, \u0447\u0442\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043c\u0435\u0436\u0434\u0443 &#8216;A++&#8217;\u0438 &#8216;++A&#8217; \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043d\u0435\u0442. \u042f \u0438\u0437\u0443\u0447\u0438\u043b \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u043f\u0440\u043e\u0432\u0451\u043b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0438 \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u044d\u0442\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438).<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430:<br \/>\n  typename InterfaceMap::iterator find(const key &amp;rKey) const {   typename InterfaceMap::iterator iter = m_pMap-&gt;begin();   typename InterfaceMap::iterator end = m_pMap-&gt;end();    while( iter != end )   {     equalImpl equal;     if( equal( iter-&gt;first, rKey ) )       break;     iter++;   }   return iter; }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS_Studio: V803 Decreased performance. In case &#8216;iter&#8217; is iterator it&#8217;s more effective to use prefix form of increment. Replace iterator++ with ++iterator. interfacecontainer.h 405<\/p>\n<p>  \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u00abiter++\u00bb \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 &quot;++iter&quot;. \u041d\u0435 \u0437\u043d\u0430\u044e, \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f. \u0415\u0441\u043b\u0438 \u0440\u0435\u0448\u0430\u0442, \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0442\u043e \u0432\u043e\u0442 \u0435\u0449\u0451 257 \u043c\u0435\u0441\u0442, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441\u043d\u044b\u0439 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u043d\u0430 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0439: LibreOffice-V803.txt.<\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u0443\u0441\u0442\u0430\u044f<br \/>\n  \u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u0443\u0441\u0442\u0430\u044f, \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0435\u0451 \u0434\u043b\u0438\u043d\u0443. \u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430:<br \/>\n  BOOL GetMsiProp(&#8230;.) {   &#8230;.   char* buff = reinterpret_cast&lt;char*&gt;( malloc( nbytes ) );   &#8230;.   return ( strlen(buff) &gt; 0 ); }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V805 Decreased performance. It is inefficient to identify an empty string by using &#8216;strlen(str) &gt; 0&#8217; construct. A more efficient way is to check: str[0] != &#8216;\\0&#8217;. sellang.cxx 49<\/p>\n<p>  \u041d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0432 \u0441\u0442\u0440\u043e\u043a\u0435, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u0441\u044f \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u043e\u043b\u044c. \u041d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0431\u0430\u0439\u0442:<br \/>\n  return buff[0] != &#8216;\\0&#8217;;<br \/>\n  \u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0441\u0438\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u0443\u0447\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e:<br \/>\n  inline bool IsEmptyStr(const char *s) {   return s == nullptr || s[0] == &#8216;\\0&#8217;; }<br \/>\n  \u0417\u0434\u0435\u0441\u044c \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043b\u0438\u0448\u043d\u044f\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043d\u0443\u043b\u044e. \u041c\u043d\u0435 \u044d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0430\u0434 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438. \u041d\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e, \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0447\u0435\u043c strlen().<\/p>\n<p>  \u0414\u0440\u0443\u0433\u0438\u0435 \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438: LibreOffice-V805.txt.<\/p>\n<p>  \u041f\u0440\u043e\u0447\u0435\u0435<br \/>\n  \u0415\u0441\u0442\u044c \u0435\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438: LibreOffice-V804_V811.txt.<\/p>\n<p>  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0439<br \/>\n  \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u043b 240 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438. \u0412\u0441\u0435\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0432\u044b\u0434\u0430\u043b \u043e\u043a\u043e\u043b\u043e 1500 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u043b\u0430\u043d\u0430 (GA) 1 \u0438 2 \u0443\u0440\u043e\u0432\u043d\u044f. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0432\u044b\u0434\u0430\u0451\u0442 \u043c\u043d\u043e\u0433\u043e \u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0439? \u041d\u0435\u0442. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u043e \u0434\u0435\u043b\u0443, \u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e \u043d\u0438\u0445 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430.<\/p>\n<p>  \u0412\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0442 \u043d\u0430\u0448\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0442\u0437\u044b\u0432\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0433\u043e\u0432\u043e\u0440\u044f\u0442: \u00ab\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 PVS-Studio \u0432\u044b\u0434\u0430\u0451\u0442 \u043c\u0430\u043b\u043e \u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0439, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e\u00bb. \u041c\u044b \u0442\u043e\u0436\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u043c\u0430\u043b\u043e. \u041d\u043e \u043a\u0430\u043a \u0436\u0435 \u0442\u0430\u043a? \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e 16% \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u0427\u0442\u043e \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435? \u042d\u0442\u043e \u043b\u043e\u0436\u043d\u044b\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f?<\/p>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0435\u0441\u0442\u044c \u043b\u043e\u0436\u043d\u044b\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u041e\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0434\u0435\u043d\u0435\u0448\u044c\u0441\u044f. \u0414\u043b\u044f \u0438\u0445 \u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u0440\u044f\u0434 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e, \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u0445\u043e\u0442\u044f \u0438 \u043d\u0435 \u0432\u044b\u044f\u0432\u0438\u043b\u043e \u043e\u0448\u0438\u0431\u043a\u0443, \u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043b\u0430 \u043d\u0430 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043b\u043e\u0445\u043e \u043f\u0430\u0445\u043d\u0435\u0442. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u043f\u043e\u044f\u0441\u043d\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445.<\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0432\u044b\u0434\u0430\u043b 206 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 V690 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f. \u0412\u043e\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432:<br \/>\n  class RegistryTypeReader { public:   &#8230;.   inline RegistryTypeReader(const RegistryTypeReader&amp; toCopy);   &#8230;. };  inline RegistryTypeReader::RegistryTypeReader(const RegistryTypeReader&amp; toCopy)   : m_pApi(toCopy.m_pApi)   , m_hImpl(toCopy.m_hImpl)   { m_pApi-&gt;acquire(m_hImpl); }<br \/>\n  \u0421 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u0442. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, operator = \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0441\u0435\u0445 206 \u043a\u043b\u0430\u0441\u0441\u0430\u0445. \u0410 \u0432\u0434\u0440\u0443\u0433 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f?<\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0431\u043e\u0440.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u043e\u0434 \u043e\u043f\u0430\u0441\u0435\u043d, \u0442\u043e \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0435\u0433\u043e. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0435\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434 \u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0442, \u0442\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0443 V690, \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0445\u0443\u0434\u0435\u0435\u0442 \u043d\u0430 206 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. \u0420\u0430\u043d\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442:<br \/>\n  if( pInit )   AddMap( pInit ); if( pInit )   AddMap( pInit2 );<br \/>\n  \u041e\u043d \u0432\u044b\u044f\u0432\u043b\u0435\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 V581. \u041d\u043e, \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u044f \u0441\u043c\u043e\u0442\u0440\u0435\u043b \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f V581 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u043e \u0438 \u043c\u043e\u0433 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u0445 \u0435\u0449\u0451 70 \u0448\u0442\u0443\u043a. \u0418 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043d\u0435 \u0432\u0438\u043d\u043e\u0432\u0430\u0442. \u041e\u0442\u043a\u0443\u0434\u0430 \u0435\u043c\u0443 \u0437\u043d\u0430\u0442\u044c, \u0437\u0430\u0447\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a:<br \/>\n  static bool lcl_parseDate(&#8230;.) {   bool bSuccess = true;   &#8230;.   if (bSuccess)   {     ++nPos;   }    if (bSuccess)   {      bSuccess =       readDateTimeComponent(string, nPos, nDay, 2, true);   &#8230;. }<br \/>\n  \u0414\u0432\u0430 \u0440\u0430\u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f &#8216;bSuccess&#8217;. \u0412\u0434\u0440\u0443\u0433 \u0432\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e?<\/p>\n<p>  \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 70 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u043c\u0438 \u0432\u043d\u043e\u0432\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u0415\u0441\u043b\u0438 \u043e\u043d \u043b\u044e\u0431\u0438\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438, \u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043d\u0435 \u043f\u0440\u0430\u0432. \u041d\u0443\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0443 V581 \u0438 \u0441\u0440\u0430\u0437\u0443 \u0438\u0441\u0447\u0435\u0437\u043d\u0443\u0442 70 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0443\u0432\u0435\u0440\u0435\u043d \u0432 \u0441\u0435\u0431\u0435, \u0442\u043e \u0435\u043c\u0443 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u0442\u044c. \u041c\u043e\u0436\u043d\u043e \u043e\u0442\u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0442\u044c \u043a\u043e\u0434:<br \/>\n  static bool lcl_parseDate(&#8230;.) {   bool bSuccess = true;   &#8230;.   if (bSuccess)   {     ++nPos;     bSuccess =       readDateTimeComponent(string, nPos, nDay, 2, true);   &#8230;. }<br \/>\n  \u0421\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u043d\u0435\u0442 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f\u043c\u0438. \u0415\u0441\u043b\u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443 \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0438\u0445 \u0438 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0435\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437\u0443\u0447\u0430\u0442\u044c. \u0415\u0441\u043b\u0438, \u043d\u0430 \u0435\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434, \u043a\u043e\u0434 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0442\u043e \u044d\u0442\u043e \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u043d\u0435 \u043b\u043e\u0436\u043d\u044b\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u0430 \u0441\u0430\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u041c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440, \u043d\u0435 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0441\u043e\u0442\u043d\u0438 \u0438\u043b\u0438 \u0442\u044b\u0441\u044f\u0447\u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439. \u041c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u043e\u0432\u044b\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u041d\u0430\u0434\u043e \u0441\u043a\u0440\u044b\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u043d\u043e\u0432\u043e\u043c \u043a\u043e\u0434\u0435. \u0410 \u043a \u043e\u0448\u0438\u0431\u043a\u0430\u043c \u0432 \u0441\u0442\u0430\u0440\u043e\u043c \u043a\u043e\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u0431\u043e\u043b\u0435\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u043e\u0442 \u0441\u0440\u043e\u0447\u043d\u044b\u0445 \u0434\u0435\u043b \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<br \/>\n  \u0425\u043e\u0442\u044f \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043c\u043e\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0430 \u043c\u0430\u0441\u0441\u0430 \u043e\u0448\u0438\u0431\u043e\u043a, \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u043e\u0432 \u0438 \u043b\u044f\u043f\u043e\u0432, \u043a\u043e\u0434 LibreOffice \u0432\u0435\u0441\u044c\u043c\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439. \u0414\u0430 \u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Coverity \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435. \u0414\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u0435\u0441\u044c\u043c\u0430 \u043c\u0430\u043b\u043e.<\/p>\n<p>  \u0427\u0442\u043e \u0445\u043e\u0442\u0435\u043b \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439? \u0414\u0430 \u0432 \u043e\u0431\u0449\u0435\u043c \u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0435\u043a\u043b\u0430\u043c\u044b \u0438 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 PVS-Studio \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u0438 \u0431\u0443\u0434\u0435\u0442\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043b\u044f\u043f\u043e\u0432 \u043d\u0430 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u043d\u043d\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445.<\/p>\n<p>  \u042f \u043f\u043e\u0434\u043e\u0431\u0435\u043d \u043a\u043e\u0440\u043e\u0432\u0435 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435. \u041f\u0440\u0438\u0448\u0451\u043b, \u043d\u0430\u0432\u0430\u043b\u0438\u043b \u043a\u0443\u0447\u0443 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0443\u0431\u0435\u0436\u0430\u043b. \u0410 \u0430\u0432\u0442\u043e\u0440\u0430\u043c LibreOffice \u0438\u0445 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u0433\u0440\u0435\u0431\u0430\u0442\u044c. \u041f\u0440\u043e\u0448\u0443 \u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f. \u0423\u0436 \u0442\u0430\u043a\u043e\u0432\u0430 \u043c\u043e\u044f \u0440\u0430\u0431\u043e\u0442\u0430.<\/p>\n<p>  \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c<br \/>\n  \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435\u0439 \u0441 \u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0435\u0439, \u0442\u043e \u043f\u0440\u043e\u0448\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434: Andrey Karpov. LibreOffice Project&#8217;s Check.<\/p>\n<p>  \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u0438 \u0435\u0441\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441?\u0427\u0430\u0441\u0442\u043e \u043a \u043d\u0430\u0448\u0438\u043c \u0441\u0442\u0430\u0442\u044c\u044f\u043c \u0437\u0430\u0434\u0430\u044e\u0442 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u041e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u043d\u0438\u0445 \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0437\u0434\u0435\u0441\u044c: \u041e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e PVS-Studio \u0438 CppCat, \u0432\u0435\u0440\u0441\u0438\u044f 2014. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c.<br \/>\n        \t \t   \thttp:\/\/habrahabr.ru\/post\/251817\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\n  \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e open-source \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 LibreOffice, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043e\u0431\u043e\u0439 \u043e\u0444\u0438\u0441\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442. \u0412 \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 480 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432. \u041a\u043e\u0434 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u044b\u043c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c Coverity. \u041d\u043e, \u043a\u0430\u043a \u0438 \u0432 \u043b\u044e\u0431\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u044b, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435. \u0414\u043b\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f, \u0432 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0442\u044c \u043d\u0435 \u0435\u0434\u0438\u043d\u043e\u0440\u043e\u0433\u0438, \u0430 \u043a\u043e\u0440\u043e\u0432\u044b.<\/p>\n<p>  LibreOffice \u2014 \u043c\u043e\u0449\u043d\u044b\u0439 \u043e\u0444\u0438\u0441\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 32\/64-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438. \u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043d \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 30 \u044f\u0437\u044b\u043a\u043e\u0432 \u043c\u0438\u0440\u0430. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0432\u043a\u043b\u044e\u0447\u0430\u044f GNU\/Linux, Microsoft Windows \u0438 Mac OS X.<\/p>\n<p>  LibreOffice \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u0435\u043d \u0438 \u0438\u043c\u0435\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434. \u041d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445: Java, Python, C++. \u0410\u043d\u0430\u043b\u0438\u0437\u0443 \u0431\u044b\u043b\u0430 \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 C++ (\u0438 \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u043d\u0430 \u0421, C++\/CLI). Version: 4.5.0.0.alpha0+ (Git revision: 368367).<\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437 \u0431\u044b\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u0434\u0430 PVS-Studio.<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b, \u0438 \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441 \u043d\u0438\u043c\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u0425\u043e\u0447\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438. \u042f \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u043a\u043e\u0434\u043e\u043c \u0438 \u043c\u043e\u0433 \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432\u043f\u043e\u043b\u043d\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043a\u043e\u0434. \u041e\u0434\u043d\u0430\u043a\u043e, \u0440\u0430\u0437 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0441\u0431\u0438\u043b \u0441 \u0442\u043e\u043b\u043a\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0438 \u043c\u0435\u043d\u044f, \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043f\u0430\u0445\u043d\u0435\u0442, \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<p>  \u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0438<br \/>\n  \u041b\u044e\u0431\u043e\u0439 \u043a\u043e\u0434 \u043d\u0435 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0431\u0435\u0437 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a. \u041c\u043d\u043e\u0433\u0438\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0436\u0438\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043d\u0430 \u0434\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043e\u043d\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0440\u0435\u0434\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0438\u043b\u0438 \u043d\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0441\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0434\u043d\u0443 \u0442\u0440\u0435\u0442\u044c:<br \/>\n  class SvgGradientEntry {   &#8230;.   bool operator==(const SvgGradientEntry&amp; rCompare) const   {     return (getOffset() == rCompare.getOffset()            &amp;&amp; getColor() == getColor()            &amp;&amp; getOpacity() == getOpacity());   }   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V501 There are identical sub-expressions to the left and to the right of the &#8216;==&#8217; operator: getColor() == getColor() svggradientprimitive2d.hxx 61<\/p>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0435 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u0434\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u044d\u0442\u043e\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;==&#8217; \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u041e\u0434\u043d\u0430\u043a\u043e, \u0440\u0430\u0437 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u043c\u043e\u0433 \u043d\u0430\u0439\u0442\u0438 \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443, \u043e\u043d \u0441\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043d\u0435 \u0432 \u0440\u0430\u0437\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0445, \u0430 \u0432 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p>  \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438? \u041d\u0435 \u0437\u043d\u0430\u044e. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0443\u0447\u0438\u0442\u044c \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u0435\u0435 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0431\u044b\u043b\u0430 \u0431\u044b \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u0444\u043e\u0440\u043c\u0438\u0442\u044c \u0442\u0430\u043a:<br \/>\n  bool operator==(const SvgGradientEntry&amp; rCompare) const {   return    getOffset()  == rCompare.getOffset()          &amp;&amp; getColor()   == getColor()          &amp;&amp; getOpacity() == getOpacity(); }<br \/>\n  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0442\u0430\u043b\u043e \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u043e, \u0447\u0442\u043e \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u00abrCompare\u00bb. \u0425\u043e\u0442\u044f \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e. \u041c\u043e\u0436\u0435\u0442 \u0438 \u043d\u0435 \u043f\u043e\u043c\u043e\u0447\u044c. \u0427\u0435\u043b\u043e\u0432\u0435\u043a\u0443 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f. \u0418 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0431\u044b\u0432\u0430\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u043e\u043c.<\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0434\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0443 \u044f\u0432\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c. \u041a\u0442\u043e-\u0442\u043e \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043a\u043e\u0434 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438.<\/p>\n<p>  void TabBar::ImplGetColors(&#8230;.) {   &#8230;.   aTempColor = rFaceTextColor;   rFaceTextColor = rSelectTextColor;   rSelectTextColor = rFaceTextColor;   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V587 An odd sequence of assignments of this kind: A = B; B = A;. Check lines: 565, 566. tabbar.cxx 566<\/p>\n<p>  \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432\u043c\u0435\u0441\u0442\u043e &#8216;rFaceTextColor&#8217; \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c &#8216;aTempColor&#8217;.<\/p>\n<p>  \u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u00ab\u0432\u0440\u0443\u0447\u043d\u0443\u044e\u00bb. \u0411\u044b\u043b\u043e \u0431\u044b \u043f\u0440\u043e\u0449\u0435 \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u0435\u0439 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 std::swap():<br \/>\n  swap(rFaceTextColor, rSelectTextColor);<br \/>\n  \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c. \u041e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u0434\u0443\u043c\u0430\u044e \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 \u0447\u0438\u0441\u0442\u043e\u043c \u0432\u0438\u0434\u0435:<br \/>\n  void SAL_CALL Theme::disposing (void) {   ChangeListeners aListeners;   maChangeListeners.swap(aListeners);    const lang::EventObject aEvent (static_cast&lt;XWeak*&gt;(this));    for (ChangeListeners::const_iterator            iContainer(maChangeListeners.begin()),            iContainerEnd(maChangeListeners.end());        iContainerEnd!=iContainerEnd;        ++iContainerEnd)   {     &#8230;.   } }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V501 There are identical sub-expressions to the left and to the right of the &#8216;!=&#8217; operator: iContainerEnd != iContainerEnd theme.cxx 439<\/p>\n<p>  \u0426\u0438\u043a\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u00abiContainerEnd!=iContainerEnd\u00bb \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u043e\u0436\u043d\u043e. \u041f\u043e\u0434\u0432\u0435\u043b\u043e \u0441\u0445\u043e\u0436\u0438\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c: \u00abiContainer!=iContainerEnd\u00bb. \u041a\u0441\u0442\u0430\u0442\u0438, \u0437\u0434\u0435\u0441\u044c \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u0421\u0442\u0440\u0430\u043d\u043d\u043e, \u0447\u0442\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u00abiContainerEnd\u00bb.<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b:<br \/>\n  static void lcl_FillSubRegionList(&#8230;.) {   &#8230;.   for( IDocumentMarkAccess::const_iterator_t       ppMark = pMarkAccess-&gt;getBookmarksBegin();     &lt;&lt;&lt;&lt;&#8212;-       ppMark != pMarkAccess-&gt;getBookmarksBegin();    &lt;&lt;&lt;&lt;&#8212;-       ++ppMark)   {     const ::sw::mark::IMark* pBkmk = ppMark-&gt;get();     if( pBkmk-&gt;IsExpanded() )       rSubRegions.InsertEntry( pBkmk-&gt;GetName() );   } }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V625 Consider inspecting the &#8216;for&#8217; operator. Initial and final values of the iterator are the same. uiregionsw.cxx 120<\/p>\n<p>  \u0426\u0438\u043a\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;ppMark&#8217; \u043d\u0443\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0441 &#8216;pMarkAccess-&gt;getBookmarksEnd()&#8217;. \u0418\u0434\u0435\u0439, \u043a\u0430\u043a \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0430\u0432\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430, \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442. \u041f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430.<\/p>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u0438\u043d\u043e\u0433\u0434\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0435\u0441\u0442\u044c, \u043d\u043e \u043e\u043d\u0430 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e \u043e\u0434\u043d\u0443 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a:<br \/>\n  bool PolyPolygonEditor::DeletePoints(&#8230;.) {   bool bPolyPolyChanged = false;   std::set&lt; sal_uInt16 &gt;::const_reverse_iterator      aIter;( rAbsPoints.rbegin() );   for( aIter = rAbsPoints.rbegin();        aIter != rAbsPoints.rend(); ++aIter )   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V530 The return value of function &#8216;rbegin&#8217; is required to be utilized. polypolygoneditor.cxx 38<\/p>\n<p>  \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c: aIter;( rAbsPoints.rbegin() );<\/p>\n<p>  \u0425\u043e\u0442\u0435\u043b\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440. \u041d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0432\u043a\u043b\u0438\u043d\u0438\u043b\u0430\u0441\u044c \u0442\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c. \u0410 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 &quot;(rAbsPoints.rbegin());&quot; \u0431\u043e\u043b\u0442\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u043e\u0437\u0434\u0443\u0445\u0435 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442.<\/p>\n<p>  \u0421\u043f\u0430\u0441\u0430\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0442\u043e, \u0447\u0442\u043e \u0432 \u0446\u0438\u043a\u043b\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0443\u0436\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u0412 \u043e\u0431\u0449\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u0442, \u043d\u043e \u043b\u0438\u0448\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043b\u0443\u0447\u0435 \u0443\u0431\u0440\u0430\u0442\u044c. \u041a\u0441\u0442\u0430\u0442\u0438, \u044d\u0442\u043e\u0442 \u0446\u0438\u043a\u043b \u0431\u044b\u043b \u0440\u0430\u0437\u043c\u043d\u043e\u0436\u0435\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Copy-Paste, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0435\u0449\u0451 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 69 \u0438 129 \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 \u0444\u0430\u0439\u043b\u0435. <\/p>\n<p>  \u041d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043a\u043b\u0430\u0441\u0441:<br \/>\n  XMLTransformerOOoEventMap_Impl::XMLTransformerOOoEventMap_Impl(         XMLTransformerEventMapEntry *pInit,         XMLTransformerEventMapEntry *pInit2 ) {   if( pInit )     AddMap( pInit );   if( pInit )     AddMap( pInit2 ); }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V581 The conditional expressions of the &#8216;if&#8217; operators situated alongside each other are identical. Check lines: 77, 79. eventoootcontext.cxx 79<\/p>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#8216;if&#8217; \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c &#8216;pInit2&#8217;.<\/p>\n<p>  \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a \u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043e, \u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e<br \/>\n  \u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438. \u041d\u043e \u044f \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u0430\u043a \u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043e.<br \/>\n  class VCL_DLLPUBLIC MouseSettings {   &#8230;.   long GetStartDragWidth() const;   long GetStartDragHeight() const;   &#8230;. }  bool ImplHandleMouseEvent( &#8230;. ) {   &#8230;.   long nDragW  = rMSettings.GetStartDragWidth();   long nDragH  = rMSettings.GetStartDragWidth();   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: V656 Variables &#8216;nDragW&#8217;, &#8216;nDragH&#8217; are initialized through the call to the same function. It&#8217;s probably an error or un-optimized code. Consider inspecting the &#8216;rMSettings.GetStartDragWidth()&#8217; expression. Check lines: 471, 472. winproc.cxx 472<\/p>\n<p>  \u041d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 nDragW \u0438 nDragH \u043e\u0434\u043d\u0438\u043c \u0438 \u0442\u0435\u043c \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c, \u0438\u043b\u0438 \u043d\u0435\u0442. \u0415\u0441\u043b\u0438 \u0434\u0430, \u0442\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f. \u0418\u043b\u0438 \u043b\u0443\u0447\u0448\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u044f\u0432\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c:<br \/>\n  long nDragW  = rMSettings.GetStartDragWidth(); long nDragH  = nDragW;<br \/>\n  \u041f\u043e\u0445\u043e\u0436\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f:<br \/>\n  void Edit::ImplDelete(&#8230;.) {   &#8230;.   maSelection.Min() = aSelection.Min();   maSelection.Max() = aSelection.Min();   &#8230;. }<br \/>\n  V656 Variables &#8216;maSelection.Min()&#8217;, &#8216;maSelection.Max()&#8217; are initialized through the call to the same function. It&#8217;s probably an error or un-optimized code. Consider inspecting the &#8216;aSelection.Min()&#8217; expression. Check lines: 756, 757. edit.cxx 757<\/p>\n<p>  \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0451 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u042f \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0437\u043d\u0430\u044e, \u0435\u0441\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u043e\u0448\u0438\u0431\u043a\u0430 \u0438\u043b\u0438 \u043d\u0435\u0442.<\/p>\n<p>  \u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439. \u0412 \u043a\u043b\u0430\u0441\u0441\u0435 \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:  GetVRP()  GetVPN()  GetVUV()  \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c, \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b &#8216;aVPN&#8217; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f GetVRP().<br \/>\n  void ViewContactOfE3dScene::createViewInformation3D(&#8230;.) {   &#8230;.   const basegfx::B3DPoint aVRP(rSceneCamera.GetVRP());   const basegfx::B3DVector aVPN(rSceneCamera.GetVRP());  &lt;&lt;&lt;&#8212;   const basegfx::B3DVector aVUV(rSceneCamera.GetVUV());   &#8230;. }<br \/>\n  \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 PVS-Studio: V656 Variables &#8216;aVRP&#8217;, &#8216;aVPN&#8217; are initialized through the call to the same function. It&#8217;s probably an error or un-optimized code. Consider inspecting the &#8216;rSceneCamera.GetVRP()&#8217; expression. Check lines: 177, 178. viewcontactofe3dscene.cxx 178<\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0432\u044b\u0434\u0430\u043b \u0435\u0449\u0451 \u043e\u0434\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 V656. \u042f \u043f\u043e\u0447\u0442\u0438 \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u0442\u0430\u043c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430. \u041d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0435 \u0431\u0443\u0434\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0439. \u041f\u0440\u043e\u0448\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e\u0442 \u0441\u044e\u0434\u0430:  V656 Variables &#8216;oNumOffset1&#8217;, &#8216;oNumOffset2&#8217; are initialized through the call to the same function. It&#8217;s probably an error or un-optimized code. Check lines: 68, 69. findattr.cxx 69<br \/>\n  Copy-Paste<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-252134","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/252134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=252134"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/252134\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=252134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=252134"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=252134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}