рд╣рдо cppcheck рдХреЗ рдмрд╛рдж рдорд╢рд░реВрдорд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ, рдУрдкрдирдПрдордПрд╕

рдмрд┐рдЧ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд░реНрдо рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЕрдиреБрд╕рдВрдзрд╛рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдФрд░ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдорд┐рд▓реА рд╡рд╣ рдереА рдПрдХ рдЦреБрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛, OpenMS, рдЬреЛ рдкреНрд░реЛрдЯреАрди рдорд╛рд╕ рд╕реНрдкреЗрдХреНрдЯреНрд░реЛрдореЗрдЯреНрд░реА рд╕реЗ рдЬреБрдбрд╝реА рдереАред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдЧрдВрднреАрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рд▓рд┐рдЦреА рдЧрдИред рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, рдХрдо рд╕реЗ рдХрдо Cppcheck рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рднреА рд╕рдирд╕рдиреАрдЦреЗрдЬ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, Cppcheck рдХреЗ рдмрд╛рдж PVS-Studio рдХреЛ рдХрд┐рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдереАред рдЗрдЪреНрдЫреБрдХ рд╡реНрдпрдХреНрддрд┐ рдореИрдВ рдЖрдкрдХреЛ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред



рдПрдХ OpenMS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдореИрдВ рдЕрдкрдиреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдкреНрд░рддрд┐рдзрд╛рд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдлрд┐рд░ рднреА рдореВрд░реНрдЦрддрд╛ рдХреЛ рд╣рд╡рд╛ рджреЗрддреЗ рд╣реИрдВред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

рдУрдкрдирдПрдордПрд╕ рдкреНрд░реЛрдЯреАрди рдорд╛рд╕ рд╕реНрдкреЗрдХреНрдЯреНрд░реЛрдореЗрдЯреНрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдФрд░ рдЗрд╕реЗ 2-рдЦрдВрдб рдмреАрдПрд╕рдбреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдУрдкрдирдПрдордПрд╕ рдореЗрдВ рдкреНрд░реЛрдЯрд┐рдУрдорд┐рдХреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рд╣реИрдВ, рд╕рд┐рдЧреНрдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, 1 рдбреА (рд╕реНрдкреЗрдХреНрдЯреНрд░рд╛ рдпрд╛ рдХреНрд░реЛрдореИрдЯреЛрдЧреНрд░рд╛рдо рд╕реНрддрд░), 2 рдбреА рдФрд░ 3 рдбреА, рдореИрдкрд┐рдВрдЧ рдореИрдкрд┐рдВрдЧ рдФрд░ рдкреЗрдкреНрдЯрд╛рдЗрдб рдкрд╣рдЪрд╛рди рдореЗрдВ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди (рдбреА-рдЖрдЗрд╕реЛрдЯреЛрдкрд┐рдВрдЧ рд╕рд╣рд┐рдд)ред рдпрд╣ рд▓реЗрдмрд▓-рдореБрдХреНрдд рдФрд░ рд╕рдорд╕реНрдерд╛рдирд┐рдХ-рд▓реЗрдмрд▓ рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдорд╛рдгреАрдХрд░рдг (рдЬреИрд╕реЗ iTRAQ рдФрд░ TMT рдФрд░ SILAC) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдореЗрдЯрд╛рдмреЛрд▓реНрдорд┐рдХреНрд╕ рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдФрд░ DIA / SWATH рд▓рдХреНрд╖рд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рд╕реНрд░реЛрдд: рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ OpenMS

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЖрдХрд╛рд░ рдореЗрдВ рдордзреНрдпрдо рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдЖрдХрд╛рд░ 20 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдкреНрд▓рд╕ рдерд░реНрдб рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдмреВрд╕реНрдЯ, рдХреНрдпреВрдЯреА, рдЬрд╝реНрд▓рд┐рдм, рдФрд░ рдЗрд╕реА рддрд░рд╣) рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред SourceForge рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЛрд░реНрд╕ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдУрдкрдирдПрдордПрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред "Cppcheck.cmake" рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА:
if (i != peptide.size()) // added for cppcheck 

рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо Cppcheck рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Cpplint рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ "cpplint.py" рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИред рдкреЗрд╢реЗрд╡рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдгред рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ред

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдХреНрдпрд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдиреЛрдЯред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, C ++ рдлрд╛рдЗрд▓реЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди * .c рд▓реЗ рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рднреНрд░рдорд┐рдд рди рд╣реЛрдВ рдЬрдм рдЖрдк '* .c' рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд┐рдд C ++ рдХреЛрдб рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред

1. OpenMP рдХреЗ рд╕рд╛рде рдХрдорд┐рдпрд╛рдВ


рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкрд╛рд░ рдЖрддрд╛ рд╣реВрдВ рдЬреЛ рдУрдкрдирдПрдордкреА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрднреА-рдХрднреА рд╡рд┐рдЪрд╛рд░ рдореБрдЭреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдЗрди рдирд┐рджрд╛рдиреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдореИрдВрдиреЗ рдУрдкрдирдПрдордкреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЦреА, рддреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдерд╛ред рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ, рджрд░реНрдЬрдиреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдХрднреА рднреА рдЙрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рднреА рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рджреЗрдЦреАред рд╡рд╛рд╣, рдЕрднреА рднреА рдХреЛрдИ рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЬрд╛рд░реА рдХреА рдЧрдИ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдореЗрдВ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛рдПрдБ рдереАрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдорд╛рдорд▓реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рднреА рдереАред
 DoubleReal ILPDCWrapper::compute(....) const { .... DoubleReal score = 0; .... #pragma omp parallel for schedule(dynamic, 1) for (SignedSize i = 0; i < (SignedSize)bins.size(); ++i) { score += computeSlice_(fm, pairs, bins[i].first, bins[i].second, verbose_level); } return score; } 

рдЪреЗрддрд╛рд╡рдиреА PVS-Studio: V1205 рдбреЗрдЯрд╛ рд░реЗрд╕ рдЬреЛрдЦрд┐рдоред рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдорд╡рд░реНрддреА рдСрдкрд░реЗрд╢рди 'рд╕реНрдХреЛрд░' рдЪрд░ рдХреЗ рд╕рд╛рдеред ilpdcwrapper.c 213

рд░рд╛рд╢рд┐ рдЧрд▓рдд рдорд╛рдиреА рдЬрд╛рддреА рд╣реИред рдЪрд░ 'рд╕реНрдХреЛрд░' рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред рд╕рдорд╛рдирд╛рдВрддрд░ рдЦрдВрдбреЛрдВ рдХреЗ рдЕрдВрджрд░, рд╕рднреА рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрднрд╛рдЧ рдХреА рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдкреНрддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреЛрдЯреНрд╕ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ: " рдУрдкрдирдПрдордкреА рдФрд░ рдЕрдкрд╡рд╛рдж ", " рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЕрдВрджрд░ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ "ред

рдереНрд░реЛ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдирдП рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (std :: bad_alloc)ред

рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдкред GetTheoreticalmaxPosition () рдлрд╝рдВрдХреНрд╢рди рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рд╕рдХрддрд╛ рд╣реИред
 Size getTheoreticalmaxPosition() const { if (!this->size()) { throw Exception::Precondition(__FILE__, __LINE__, __PRETTY_FUNCTION__, "There must be at least one trace to ......"); } .... } virtual void run() { .... #pragma omp parallel for for (SignedSize i = 0; i < (SignedSize)seeds.size(); ++i) { .... f.setMZ( traces[traces.getTheoreticalmaxPosition()].getAvgMZ()); .... } .... } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА: V1301 'рдереНрд░реЛ' рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдЦрдВрдб рдореЗрдВ рдПрдХ рдкреНрд░рдпрд╛рд╕..рдЪреЗрдХ рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд╝реАрдЪрд░рдлрд╛рдЗрдВрдбрд░рд▓реЙрдиреНрдЧрдкреНрд░реЛрдЬреЗрдХреНрдЯрдбреЗрд▓рд╣реЗрд▓реНрдкреЗрд╕реНрдЯреНрд░рдХреНрдЯреЗрд╢ред 199

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдкред 'рдирдП' рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред
 TraceFitter<PeakType>* chooseTraceFitter_(double& tau) { // choose fitter if (param_.getValue("feature:rt_shape") == "asymmetric") { LOG_DEBUG << "use asymmetric rt peak shape" << std::endl; tau = -1.0; return new EGHTraceFitter<PeakType>(); } .... } virtual void run() { .... #pragma omp parallel for for (SignedSize i = 0; i < (SignedSize)seeds.size(); ++i) { .... TraceFitter<PeakType>* fitter = chooseTraceFitter_(egh_tau); .... } .... } 

PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V1302 'рдирдП' рдСрдкрд░реЗрдЯрд░ рдХреЛ рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдЦрдВрдб рдореЗрдВ рдПрдХ рдкреНрд░рдпрд╛рд╕..рдЪреЗрдХ рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рд╣рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлреАрдЪрд░рдлрд╛рдЗрдВрдбрд░рд▓реЙрдлрд┐рдЧрд░рдЧрд┐рдВрдЪред 1926

рдЕрдиреНрдп рд╕рдорд╛рди рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ:

2. рдЯрд╛рдЗрдкреЛ


 std::vector< std::pair<std::string, long> > spectra_offsets; std::vector< std::pair<std::string, long> > chromatograms_offsets; template <typename MapType> void MzMLHandler<MapType>::writeFooter_(std::ostream& os) { .... int indexlists; if (spectra_offsets.empty() && spectra_offsets.empty() ) { indexlists = 0; } else if (!spectra_offsets.empty() && !spectra_offsets.empty() ) { indexlists = 2; } else { indexlists = 1; } .... } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА:

V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ 'spectra_offsets.empty ()' рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ред mzmlhandler.h 5288

V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ '! Spectra_offsets.empty ()' рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ред mzmlhandler.h 5292

рдмрд╣реБрдд рдЕрдЬреАрдм рдЬрд╛рдБрдЪред рдХрдВрдЯреЗрдирд░ 'рд╕реНрдкреЗрдХреНрдЯреНрд░рд╛_рдСрдлрд╕реЗрдЯреНрд╕' рдХреЛ рджреЛ рдмрд╛рд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ рдФрд░ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП: рд╕реНрдкреЗрдХреНрдЯреНрд░рд╛_рдСрдлрд╕реЗрдЯреНрд╕ рдФрд░ рдХреНрд░реЛрдореИрдЯреЛрдЧреНрд░рд╛рдореНрд╕_рдСрдлрд╕реЗрдЯреНрд╕ред
 template <typename MapType> void MzMLHandler<MapType>::characters( const XMLCh* const chars, const XMLSize_t) { .... if (optionalAttributeAsString_(data_processing_ref, attributes, s_data_processing_ref)) { data_.back().meta.setDataProcessing( processing_[data_processing_ref]); } else { data_.back().meta.setDataProcessing( processing_[data_processing_ref]); } .... } 

PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V523 'рддрддреНрдХрд╛рд▓реАрди' рдХрдерди 'рдФрд░' рдХрдерди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред mzmlhandler.h 534

рдпрджрд┐ рдЖрдк рд╕рдорд╛рди рдХреЛрдб рдЕрдВрд╢реЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛:
рдХрдИ рдЯрд╛рдЗрдкреЛ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдкреАрдврд╝реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдереЗред рдЧрд▓рддрд┐рдпрд╛рдБ рдЖрдо рдмрд╛рдд рд╣реИрдВред 'рдереНрд░реЛ' рдХреАрд╡рд░реНрдб рдХреЛ рднреБрд▓рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╡рд╕реНрддреБ рдмрд╕ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рддреБрд░рдВрдд рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 inline UInt asUInt_(const String & in) { UInt res = 0; try { Int tmp = in.toInt(); if (tmp < 0) { Exception::ConversionError( __FILE__, __LINE__, __PRETTY_FUNCTION__, ""); } res = UInt(tmp); } catch (Exception::ConversionError) { error(LOAD, String("UInt conversion error of \"") + in + "\""); } return res; } 

PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V596 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред 'рдереНрд░реЛ' рдХреАрд╡рд░реНрдб рдЧрд╛рдпрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдереНрд░реВ рдХрдирд╡рд░реНрдЬрд╝рдиError (FOO); xmlhandler.h 247

рдпрд╣рд╛рдБ рдХреА рдкрд╣рдЪрд╛рди рдЯрд╛рдЗрдкреЛ:
рдФрд░ рдЖрдЦрд┐рд░реА рдЯрд╛рдЗрдкреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛:
 inline typename Value<Pipe>::Type const & operator*() { tmp.i1 = *in.in1; tmp.i2 = *in.in2; tmp.i3 = *in.in2; return tmp; } 

рдЪреЗрддрд╛рд╡рдиреА PVS-Studio: V525 рд╕рдорд╛рди рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рд╡рд╛рд▓рд╛ рдХреЛрдбред 'рдЗрди', 'рдЗрди', 'рдЗрди', 'рдЗрди' рдХреЛ 112, 113, 114, 114 рдкрд░ рдЪреЗрдХ рдХрд░реЗрдВред рдкрд╛рдЗрдк_рдЬреЙрдЗрдирд░ред 112 112

рдпрд╣ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
 tmp.i1 = *in.in1; tmp.i2 = *in.in2; tmp.i3 = *in.in3; 

3. рдПрдХ рдЕрдЬреАрдм рд╕реНрдерд┐рддрд┐


 CompressedInputSource::CompressedInputSource( const String & file_path, const char * header, MemoryManager * const manager) : xercesc::InputSource(manager) { if (sizeof(header) / sizeof(char) > 1) { head_[0] = header[0]; head_[1] = header[1]; } else { head_[0] = '\0'; head_[1] = '\0'; } .... } 

PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V514 рдПрдХ рдФрд░ рдорд╛рди рджреНрд╡рд╛рд░рд╛ рдПрдХ рдкреЙрдЗрдВрдЯрд░ 'sizeof (рд╣реЗрдбрд░) рдХрд╛ рдЖрдХрд╛рд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдХрдВрдкреНрд░реЗрд╢рд┐рдирдкреБрдЯрд╕реЛрд░реНрд╕ релреи

рдпрджрд┐ рд╣рдо рд╕реВрдЪрдХ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрд╛рдЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдорд┐рд▓рддреЗ рд╣реИрдВред рдХрдо рд╕реЗ рдХрдо рдореБрдЭреЗ рдлреИрдВрд╕реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╣реИред рддреЛ рдпрд╣рд╛рдБ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЧрд▓рддреА рд╣реИред

рдЗрд╕реА рддрд░рд╣ рдХреА рдПрдХ рдЕрдЬреАрдм рдЬрд╛рдБрдЪ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ: compressinputsource.c 104

4. рдХрд┐рд╕реА рд╕реНрдерд╛рдиреАрдп рд╡рд╕реНрддреБ рдХрд╛ рд▓рд┐рдВрдХ рд▓реМрдЯрд╛рдирд╛


 template <typename TStringSet, typename TSpec> inline Iter<TStringSet, ConcatVirtual<TSpec> > const & operator++(Iter<TStringSet, ConcatVirtual<TSpec> > & me, int) { Iter<TStringSet, ConcatVirtual<TSpec> > before = me; goNext(me); return before; } 

PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V558 рдлрд╝рдВрдХреНрд╢рди рдЕрд╕реНрдерд╛рдпреА рд╕реНрдерд╛рдиреАрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ: рдкрд╣рд▓реЗред iter_concat_virtual.h 277

рдлрд╝рдВрдХреНрд╢рди рдЕрд╕реНрдерд╛рдпреА рдЪрд░ 'рд╕реЗ рдкрд╣рд▓реЗ' рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИред рдЬрдм рдЖрдк рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЪрд░ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдХрд┐рд╕реА рдирд╖реНрдЯ рд╣реБрдИ рд╡рд╕реНрддреБ рдХреЗ рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛрдВрдЧреЗред

рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдпрд╛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рд▓рд┐рдВрдХ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
 Iter<TStringSet, ConcatVirtual<TSpec> > &before = me; 

[рдкреАрдПрд╕ рдЧрд▓рддред рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рджреЗрдЦреЗрдВ]

рдСрдкрд░реЗрдЯрд░ '-' рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИ: iter_concat_virtual.h 310

5. рдореИрд▓рд╛ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ


 typedef size_t Size; typedef double DoubleReal; void updateMeanEstimate(const DoubleReal & x_t, DoubleReal & mean_t, Size t) { DoubleReal tmp(mean_t); tmp = mean_t + (1 / (t + 1)) * (x_t - mean_t); mean_t = tmp; } 

PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V636 '1 / (t + 1)' рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ 'int' рдкреНрд░рдХрд╛рд░ рд╕реЗ 'рдбрдмрд▓' рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдЖрдВрд╢рд┐рдХ рднрд╛рдЧ рдХреЗ рдиреБрдХрд╕рд╛рди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг: рдбрдмрд▓ рдП = (рдбрдмрд▓) (рдПрдХреНрд╕) / рд╡рд╛рдИ ;; masstracedetection.c 129

рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "(1 / (t + 1))" рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рдпрд╛ рдПрдХ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрд╛ рдЧрдпрд╛ рдерд╛, рдПрдХ рдФрд░ред рдореБрдЭреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рддрд░реНрдХ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рддреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
 tmp = mean_t + (1.0 / (t + 1)) * (x_t - mean_t); 

рдореБрдЭреЗ рдпрд╣ рднреА рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ M_PI рд╕реНрдерд┐рд░ рдХреЗ рдмрдЬрд╛рдп, рд╕реНрдкрд╖реНрдЯ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд╣реБрдд рд╕рдЯреАрдХ рдирд╣реАрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 bool PosteriorErrorProbabilityModel::fit( std::vector<double> & search_engine_scores) { .... incorrectly_assigned_fit_param_.A = 1 / sqrt(2 * 3.14159 * pow(incorrectly_assigned_fit_param_.sigma, 2)); .... } 

рдЪреЗрддрд╛рд╡рдиреА PVS-Studio: V624 рдирд┐рд░рдВрддрд░ 3.14159 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдореА рдореВрд▓реНрдп рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред <Math.h> рд╕реЗ M_PI рдирд┐рд░рдВрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдкреЛрд╕реНрдЯреАрд░рд┐рдпрд░рд░рдкреНрд░реЛрдПрдмрд┐рд▓рд┐рдЯреАрдореЙрдбреЗрд▓ред рд╕реА рд╕реА 92

рдЗрд╕реА рддрд░рд╣:

6. рд╕рд░рдгреА рдореЗрдВ рд╡рд┐рджреЗрд╢ рдЬрд╛рдирд╛


 static const Int CHANNELS_FOURPLEX[4][1]; static const Int CHANNELS_EIGHTPLEX[8][1]; ExitCodes main_(int, const char **) { .... if (itraq_type == ItraqQuantifier::FOURPLEX) { for (Size i = 0; i < 4; ++i) { std::vector<std::pair<String, DoubleReal> > one_label; one_label.push_back(std::make_pair<String, DoubleReal>( String("Channel ") + String(ItraqConstants::CHANNELS_FOURPLEX[i][0]), DoubleReal(ItraqConstants::CHANNELS_FOURPLEX[i][0]))); labels.push_back(one_label); } } else //ItraqQuantifier::EIGHTPLEX { for (Size i = 0; i < 8; ++i) { std::vector<std::pair<String, DoubleReal> > one_label; one_label.push_back(std::make_pair<String, DoubleReal>( String("Channel ") + String(ItraqConstants::CHANNELS_FOURPLEX[i][0]), DoubleReal(ItraqConstants::CHANNELS_FOURPLEX[i][0]))); labels.push_back(one_label); } } .... } 

PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА: V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'I' рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорд╛рди 7. itraqanalyzer.c 232 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ "рд╕рд░рдгреА рдХреА рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ" рд╣реЛрдиреЗ рджреЗрдВред рдпрд╣ рдЕрдзрд┐рдХ рдбрд░рд╛рдиреЗ рд▓рдЧрддрд╛ рд╣реИред рд╡реИрд╕реЗ рднреА, рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдмрд╣реБрдд рдордирдорд╛рдирд╛ рд╣реИред рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ, 'рдФрд░' рд╢рд╛рдЦрд╛ рдореЗрдВ, рдЖрдкрдХреЛ 'CHANNELS_EIGHTPLEX' рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдерд╛ред рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ:
 else //ItraqQuantifier::EIGHTPLEX 

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ рдерд╛ред рдирддреАрдЬрддрди, рд╕рд░рдгреА CHANNELS_FOURPLEX, рдЬреЛ рдЫреЛрдЯрд╛ рд╣реИ, рд╡рд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдПрдХ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ (рдПрдХ рдФрд░ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ): tmtanalyzer.c 225

рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
 DoubleReal masse_[255]; ///< mass table EdwardsLippertIterator::EdwardsLippertIterator(const EdwardsLippertIterator & source) : PepIterator(source), f_file_(source.f_file_), actual_pep_(source.actual_pep_), spec_(source.spec_), tol_(source.tol_), is_at_end_(source.is_at_end_), f_iterator_(source.f_iterator_), f_entry_(source.f_entry_), b_(source.b_), e_(source.e_), m_(source.m_), massMax_(source.massMax_) { for (Size i = 0; i < 256; i++) { masse_[i] = source.masse_[i]; } } 

PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА: V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'I' рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорд╛рди 255 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред edwardslippertiterator.c 134

рдХреЙрдкреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ masse_ array рдХреЗ рд╕рд╛рде рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ 255 рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдФрд░ 256 рддрддреНрд╡реЛрдВ рдХреА рдирдХрд▓ рдХреА рдЬрд╛рддреА рд╣реИред

рд╕рд╣реА рдЪрдХреНрд░:
 for (Size i = 0; i < 255; i++) { masse_[i] = source.masse_[i]; } 

рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ, рдЬрд╛рджреВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред

7. рдбрд┐рдкреНрд░реЗрд╕реНрдб рдСрдкрд░реЗрдЯрд░ рдХреЙрд▓ 'рдирдпрд╛'


 svm_problem * LibSVMEncoder::encodeLibSVMProblem(....) { .... node_vectors = new svm_node *[problem->l]; if (node_vectors == NULL) { delete[] problem->y; delete problem; return NULL; } .... } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА: V668 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл 'рдиреЛрдб_рд╡реЗрдХреНрдЯрд░' рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореГрддрд┐ рдХреЛ 'рдирдП' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред libsvmencoder.c 177

"If (node_vectors == NULL)" рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдпреЛрдЬрдирд╛рдмрджреНрдз рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕реА рддрд░рд╣ рдХреА рдЕрдкреНрд░рдЪрд▓рд┐рдд рдЬрд╛рдВрдЪ:

рдирд┐рд╖реНрдХрд░реНрд╖


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рди рдХреЗрд╡рд▓ Cppcheck, Cpplint, рдмрд▓реНрдХрд┐ PVS-Studio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ support@viva64.com рдкрд░ рд╣рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдУрдкрдирдПрдордПрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдВрдЬреА рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВрдЧреЗред

Source: https://habr.com/ru/post/In192996/


All Articles