Qt 5 рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЬрд╛рдБрдЪ

рдХреНрдпреВрдЯреА рдФрд░ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ

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



рдХреНрдпреВрдЯреА



Qt C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреВрд▓рдХрд┐рдЯ рд╣реИред рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрд╕рдХреА рдорджрдж рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЙрди рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рдиреЗрдЯрд╡рд░реНрдХ, рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ XML рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GUI рддрддреНрд╡реЛрдВ рд╕реЗ рд▓реЗрдХрд░ рдХрдХреНрд╖рд╛рдУрдВ рддрдХред Qt рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рд╣реИ, рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реИ, рдФрд░ рдШрдЯрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред [рд╕реНрд░реЛрдд: рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛]



рд╕рдВрджрд░реНрдн: рд╣рдо Qt рд╕рдВрд╕реНрдХрд░рдг 5.2.1 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдг 5.15 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред



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



Qt рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рддреНрдпрд╛рдкрди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ



рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдирдП рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдХреНрдпреВрдЯреА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рддрдВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдм рддрдХ рдХрд┐рд╕реА рдХреЛ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рд╣рдо рдЗрд╕рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдпрд╛рдж рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдирдпрд╛ рд░рд╣рд╕реНрдпрдордп рдФрд░ рд╕реБрдВрджрд░ рддрдВрддреНрд░ рдХреНрдпрд╛ рд╣реИ?



рдпрджрд┐ рдпрд╣ nmake рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдХрднреА-рдХрднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдмрд╣реБрдд рдХрдо рд╕реЗ рдХрдо, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЯреВрд▓ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред



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



рдХрдВрдкрд╛рдЗрд▓рд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рдПрдкреНрд▓реАрдХреЗрд╢рди GUI рд╕реЗ рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рджреЛрдиреЛрдВ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирдП рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ:



рдПрд╡реНрдЬреЗрдиреА рд░рд┐рдпрд╛рдЬрд╝рдХреЛрд╡ред рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЕрдм рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХрд┐рд╕реА рднреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЖрд╕рд╛рди рдФрд░ рдЖрдЙрдЯ рдСрдл рдж рдмреЙрдХреНрд╕ ред



рдпрд╣ рдЖрд▓реЗрдЦ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ Qt рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕реНрдЯрд╛рд░реНрдЯ рдореЛрдб рдореЗрдВ рдХреИрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



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



рдорд╛рдиреНрдпрддрд╛ рдкрд░рд┐рдгрд╛рдо



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореБрдЭреЗ рдХреЛрдб рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЫрд╛рдк рдорд┐рд▓реА:



Qt рдХреЛрдб рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рд╣реИ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ C ++ рднрд╛рд╖рд╛ рдХреА рдЦрддрд░рдирд╛рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд╛рдзрд╛рд░рдг рдЯрд╛рдЗрдкреЛред



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



рдЯрд╛рдЗрдкреЛрд╕ рдХреА рдЕрджреНрднреБрдд рджреБрдирд┐рдпрд╛ рдореЗрдВ рдбреБрдмрдХреА



рдЯрд╛рдЗрдкреЛ рдХреА рдПрдХ рдЕрджреНрднреБрдд рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ



рдЯрд╛рдЗрдкреЛ N рез

bool QWindowsUser32DLL::initTouch() { QSystemLibrary library(QStringLiteral("user32")); registerTouchWindow = ....; unregisterTouchWindow = ....; getTouchInputInfo = ....; closeTouchInputHandle = ....; return registerTouchWindow && unregisterTouchWindow && getTouchInputInfo && getTouchInputInfo; }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ 'getTouchInputInfo' рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ред qwindowscontext.cpp 216



рдЪрд╛рд░ рдЪрд░ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдорд╛рди рд╣реИрдВред рдЗрди рдЪрд╛рд░ рдЪрд░реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдПрдХ рдЯрд╛рдЗрдкреЛ рдХреЗ рдХрд╛рд░рдг, рдХреЗрд╡рд▓ 3 рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдореЗрдВ, 'getTouchInputInfo' рдХреЗ рдмрдЬрд╛рдп 'closeTouchInputHandle' рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдЯрд╛рдЗрдкреЛ рдПрди 2

 QWindowsNativeImage *QWindowsFontEngine::drawGDIGlyph(....) { .... int iw = gm.width.toInt(); int ih = gm.height.toInt(); if (iw <= 0 || iw <= 0) return 0; .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V501 рдмрд╛рдИрдВ рдФрд░ 'рджрд╛рдИрдВ рдУрд░' рдХреЗ рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВред рдСрдкрд░реЗрдЯрд░: iw <= 0 || iw <= 0 qwindowsfontengine.cpp 1095



рдЪрд░ 'ih' рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЛрдИ рдКрдБрдЪрд╛рдИ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рд╣реИред



рдЯрд╛рдЗрдкреЛ рдПрди 3, рдПрди 4



рдпрд╣ рддреНрд░реБрдЯрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреИрд╕реЗ рдпреВрдирд┐рдЯ рдЗрдХрд╛рдЗрдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдзрд┐рдХ: " рдХреИрд╕реЗ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЯреАрдбреАрдбреА рдХрд╛ рдкреВрд░рдХ рд╣реИ ред"

 inline bool qCompare(QImage const &t1, QImage const &t2, ....) { .... if (t1.width() != t2.width() || t2.height() != t2.height()) { .... }
      
      





рдЪреЗрддрд╛рд╡рдиреА PVS-Studio: V501 рдмрд╛рдИрдВ рдФрд░ 'рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ! = рд╕рдВрдЪрд╛рд▓рдХ: t2.height ()! = T2.height () qtest_gui.h 101



рджреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрдирдХреА рдКрдВрдЪрд╛рдИ рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╕рд╣реА рдорд╛рдпрдиреЗ рдореЗрдВ, рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред



рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рддреНрд░реБрдЯрд┐ред рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХреА рддреБрд▓рдирд╛ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдореЗрдВ рдиреАрдЪреЗ (рд▓рд╛рдЗрди 135) рдореЗрдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИред



рдЯрд╛рдЗрдкреЛ рдПрди 5



рдореБрдЭреЗ рдЦреЗрдж рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ рдмрджрд╕реВрд░рдд рдмрдирд╛ рджрд┐рдпрд╛ред рд▓рд╛рдЗрдиреЗрдВ рдмрд╣реБрдд рд▓рдВрдмреА рдереАрдВред

 void QXmlSimpleReader::setFeature( const QString& name, bool enable) { .... } else if ( name == QLatin1String( "http://trolltech.com/xml/features/report-start-end-entity") || name == QLatin1String( "http://trolltech.com/xml/features/report-start-end-entity")) { .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V501 рдмрд╛рдИрдВ рдФрд░ 'рджрд╛рдИрдВ рдУрд░' рдХреЗ рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВред рдСрдкрд░реЗрдЯрд░ред qxml.cpp 3249



рдЪрд░ 'рдирд╛рдо' рдХреА рддреБрд▓рдирд╛ рдПрдХ рд╣реА рддрд╛рд░ рд╕реЗ рджреЛ рдмрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИред рдХреЛрдб рдореЗрдВ рдКрдкрд░, рдПрдХ рд╕рдорд╛рди рддреБрд▓рдирд╛ рд╣реИред рдЪрд░ рдХреЛ рдЗрди рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд░ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ: рд╕рд╛рджреГрд╢реНрдп рд╕реЗ, рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдореЗрдВ рдЪрд░ 'рдирд╛рдо' рдХреА рддреБрд▓рдирд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП: рдЯрд╛рдЗрдкреЛ рдПрди 6, рдПрди 7, рдПрди 8, рдПрди 9

 QString DayTimeDuration::stringValue() const { .... if(!m_hours && !m_minutes && !m_seconds && !m_seconds) .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ! 'M_seconds' рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ред qdaytimeduration.cpp 148



рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдПред Milliseconds рдХреЛ 'm_mseconds' рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╛рдБрдЪ рдЗрд╕ рддрд░рд╣ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

 if(!m_hours && !m_minutes && !m_seconds && !m_mseconds)
      
      





рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рд╕рд╛рде рддреАрди рдФрд░ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ: рдЯрд╛рдЗрдкреЛ рдПрди 10

 QV4::ReturnedValue QQuickJSContext2DPrototype::method_getImageData( QV4::CallContext *ctx) { .... qreal x = ctx->callData->args[0].toNumber(); qreal y = ctx->callData->args[1].toNumber(); qreal w = ctx->callData->args[2].toNumber(); qreal h = ctx->callData->args[3].toNumber(); if (!qIsFinite(x) || !qIsFinite(y) || !qIsFinite(w) || !qIsFinite(w)) .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ! 'QIsFinite (w)' рдмрд╛рдИрдВ рдФрд░ рджрд╛рдИрдВ рдУрд░ '' || рдСрдкрд░реЗрдЯрд░ред qquickcontext2d.cpp 3305



рдЪрд░ 'рд╣' рдХрд╛ рдХреЛрдИ рд╕рддреНрдпрд╛рдкрди рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЪрд░ 'w' рдХреЛ рджреЛ рдмрд╛рд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЯрд╛рдЗрдкреЛ рдПрди 11

 AtomicComparator::ComparisonResult IntegerComparator::compare(const Item &o1, const AtomicComparator::Operator, const Item &o2) const { const Numeric *const num1 = o1.as<Numeric>(); const Numeric *const num2 = o1.as<Numeric>(); if(num1->isSigned() || num2->isSigned()) .... }
      
      





V656 рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ 'num1', 'num2' рдХреЛ рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рддреНрд░реБрдЯрд┐ рдпрд╛ рдЕрди-рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рд╣реИред 'O1.as <рдиреНрдпреВрдореЗрд░рд┐рдХ> ()' рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЬрд╛рдБрдЪ рд▓рд╛рдЗрдиреЗрдВ: 220, 221



рд╡реИрд░рд┐рдПрдмрд▓ 'num1' рдФрд░ 'num2' рдПрдХ рд╣реА рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХреГрдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрди рджреЛрдиреЛрдВ рдЪрд░ рдХреЛ рдиреАрдЪреЗ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рдВрджрд┐рдЧреНрдз рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред



рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЪрд░ 'num2' рдХреЛ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЖрд░рдореНрдн рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдБ рддрд░реНрдХ 'o2' рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 const Numeric *const num1 = o1.as<Numeric>(); const Numeric *const num2 = o2.as<Numeric>();
      
      





рдЯрд╛рдЗрдкреЛ рдПрди 12

 void Atlas::uploadBgra(Texture *texture) { const QRect &r = texture->atlasSubRect(); QImage image = texture->image(); if (image.format() != QImage::Format_ARGB32_Premultiplied || image.format() != QImage::Format_RGB32) { .... }
      
      





V547 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реИред рд╕рдВрднрд╡рддрдГ '&&' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред qsgatlastexture.cpp 271



рдЗрд╕ рдХреЛрдб рдореЗрдВ рд╢рд░реНрдд рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд╡рд╣ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ, рдореИрдВ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:

 int a = ...; if (a != 1 || a != 2)
      
      





рдПрдХ рдЪрд░ рд╣рдореЗрд╢рд╛ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЕрд╕рдорд╛рди рд╣реЛрдЧрд╛ред



рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╕рд╣реА рдХреЛрдб рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢рд╛рдпрдж рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

 if (image.format() == QImage::Format_ARGB32_Premultiplied || image.format() == QImage::Format_RGB32) {
      
      





рдпрд╛ рддреЛ:

 if (image.format() != QImage::Format_ARGB32_Premultiplied && image.format() != QImage::Format_RGB32) {
      
      





рдЯрд╛рдЗрдкреЛ рдПрди 13

 void QDeclarativeStateGroupPrivate::setCurrentStateInternal( const QString &state, bool ignoreTrans) { .... QDeclarativeTransition *transition = (ignoreTrans || ignoreTrans) ? 0 : findTransition(currentState, state); .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V501 рдмрд╛рдИрдВ рдФрд░ 'рджрд╛рдИрдВ рдУрд░' рдХреЗ рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВред рдСрдкрд░реЗрдЯрд░: ignTrans || IgnTrans qdeclarativestategroup.cpp 442



рдпрд╣рд╛рдБ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЪреЗрдХ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред



рдЯрд╛рдЗрдкреЛ рдПрди 14

 QV4::ReturnedValue QQuickJSContext2DPrototype::method_createPattern(....) { .... if (repetition == QStringLiteral("repeat") || repetition.isEmpty()) { pattern->patternRepeatX = true; pattern->patternRepeatY = true; } else if (repetition == QStringLiteral("repeat-x")) { pattern->patternRepeatX = true; } else if (repetition == QStringLiteral("repeat-y")) { pattern->patternRepeatY = true; } else if (repetition == QStringLiteral("no-repeat")) { pattern->patternRepeatY = false; pattern->patternRepeatY = false; } else { //TODO: exception: SYNTAX_ERR } .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V519 'рдкреИрдЯрд░реНрди-> patternRepeatY' рдЪрд░ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: 1775, 1776ред qquickcontext2d.cpp 1776



рд▓рдЧрд╛рддрд╛рд░ рджреЛ рдХрд╛рд░реНрдп рдЪрд░ 'рдкреИрдЯрд░реНрди рд░рд┐рдкреЗрдЯреА' рд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

 pattern->patternRepeatY = false; pattern->patternRepeatY = false;
      
      





рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдпрд╣рд╛рдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

 } else if (repetition == QStringLiteral("no-repeat")) { pattern->patternRepeatX = false; pattern->patternRepeatY = false; } else {
      
      





C ++ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ



рд╕реА ++ рднрд╛рд╖рд╛ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ



рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧрд▓рддрд┐рдпрд╛рдБ рд╕рд╛рдорд╛рдиреНрдп рдЯрд╛рдЗрдкреЛрд╕ рд╣реИрдВред C ++ рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рд╕реЗ рдЬреБрдбрд╝реА рд▓рдЧрднрдЧ рдХреЛрдИ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреА рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрднреА рднреА рдкрд╛рдИ рдЧрдИрдВред



рдСрдкрд░реЗрд╢рди рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реБрдВрджрд░ рддреНрд░реБрдЯрд┐

 bool QConfFileSettingsPrivate::readIniLine(....) { .... char ch; while (i < dataLen && ((ch = data.at(i) != '\n') && ch != '\r')) ++i; .... }
      
      





V593 'рдП = рдмреА! = рд╕реА' рдкреНрд░рдХрд╛рд░ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЧрдгрдирд╛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ: 'рдП = (рдмреА! = рд╕реА)'ред qsettings.cpp 1702



рд▓реВрдк рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрдВрдХреНрддрд┐ рд╡рд░реНрдг рдХрд╛ рдЕрдВрдд рд╡рд░реНрдг '\ n' рдпрд╛ '\ r' рд╣реИред



рд╢рд░реНрдд рдХреЗ рдЕрдВрджрд░, рдПрдХ рд╡рд░реНрдг рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ '\ n' рдФрд░ 'r' рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рддреНрд░реБрдЯрд┐ рдЗрд╕рд▓рд┐рдП рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ '=' 'рдСрдкрд░реЗрдЯрд░ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдСрдкрд░реЗрдЯрд░' = 'рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдпрд╣ рд╡рд░реНрдг рдХреЛрдб рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЪрд░ 'ch' рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 'рд╕рд╣реА' рдпрд╛ 'рдЧрд▓рдд' рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рддреБрд▓рдирд╛ '\ r' рдЕрдм рдХреЛрдИ рднреВрдорд┐рдХрд╛ рдирд╣реАрдВ рдирд┐рднрд╛рддрд╛ рд╣реИред



рд╣рдо рдХреЛрд╖реНрдардХ рдХреЛ рд░рдЦрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рддреНрд░реБрдЯрд┐ рдмреЗрд╣рддрд░ рдирдЬрд░ рдЖрдП:

 while (i < dataLen && ((ch = (data.at(i) != '\n')) && ch != '\r'))
      
      





рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг, рдХреЗрд╡рд▓ '\ n' рд╡рд░реНрдг рдХреЛ рдкрдВрдХреНрддрд┐ рдХрд╛ рдЕрдВрдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд░реЗрдЦрд╛рдПрдБ '\ r' рдЕрдХреНрд╖рд░ рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред



рд╕рд╣реА рдХреЛрдб рд╣реИ:

 while (i < dataLen && (ch = data.at(i)) != '\n' && ch != '\r')
      
      





рд╕рдЯреАрдХрддрд╛ рдХреА рд╣рд╛рдирд┐

 bool QWindowsTabletSupport::translateTabletPacketEvent() { .... const double radAzim = (packet.pkOrientation.orAzimuth / 10) * (M_PI / 180); .... }
      
      





V636 'packet.pkOrientation.orAzimuth / 10' рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ 'int' рдкреНрд░рдХрд╛рд░ рд╕реЗ 'рдбрдмрд▓' рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдЖрдВрд╢рд┐рдХ рднрд╛рдЧ рдХреЗ рдиреБрдХрд╕рд╛рди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг: рдбрдмрд▓ рдП = (рдбрдмрд▓) (рдПрдХреНрд╕) / рд╡рд╛рдИ ;; qwindowstabletsupport.cpp 467



рдЪрд░ 'packet.pkOrientation.orAzimuth' рдкреНрд░рдХрд╛рд░ 'int' рдХрд╛ рд╣реИред рдЗрд╕ рдкреВрд░реНрдгрд╛рдВрдХ рдЪрд░ рдХреЛ рд╕рдВрдЦреНрдпрд╛ 10 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рддрдм рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЯрд╛рдЗрдк 'рдбрдмрд▓' рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рднреА рдЯрд╛рдЗрдк 'рдбрдмрд▓' рдХреЗ рдПрдХ рдЪрд░ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред



рдРрд╕рд╛ рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрди рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдХреЛрдб рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд░рд╛рджрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдЕрдХреНрд╕рд░ рдпрд╣ рдПрдХ рджреЛрд╖ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЧрдгрдирд╛ рдХреА рд╕рдЯреАрдХрддрд╛ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 'packet.pkOrientation.orAzimuth' рдХреЛ 55 рд╣реЛрдиреЗ рджреЗрдВред рдлрд┐рд░ рдЧрдгрдирд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛:



(55/10) * (3.14159 ... / 180) = 5 * 0.01745 ... = 0.087266 ...



рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдирд┐рд░рдВрддрд░ 10 рдХреЛ рджреЛрд╣рд░реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ: "(packet.pkOrientation.orAzimuth / 10.0 ) * (M_PI / 180)"ред рдЕрдм рдЧрдгрдирд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ:



(55 / 10.0) * (3.14159 ... / 180) = 5.5 * 0.01745 ... = 0.095993 ...



рдЗрд╕ рддрд░рд╣ рдХреА рдЕрд╢реБрджреНрдзрд┐рдпрд╛рдВ рдЕрдХреНрд╕рд░ рд╣реЛрддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЙрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рддрд┐ рдЕрд╕рд╛рд╡рдзрд╛рди рд╣реЛрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдЕрд╕рд╛рд╡рдзрд╛рдиреА рдЕрдХреНрд╕рд░ 64-рдмрд┐рдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ ( рдорд┐рд╢реНрд░рд┐рдд рдЕрдВрдХрдЧрдгрд┐рдд рджреЗрдЦреЗрдВ) рдХреА рдУрд░ рднреА рд▓реЗ рдЬрд╛рддреА рд╣реИред



рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЕрдиреНрдп 51 рд╕рдВрджрд┐рдЧреНрдз рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдХреБрдЫ рднрд╛рд╡ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рдХрдо рд╕рдЯреАрдХ рд╣реЛрдВрдЧреЗред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реВрдВ: qt-v636.txt ред



рдкреНрд╡рд╛рдЗрдВрдЯрд▓реЗрд╕ рдкреЙрдЗрдВрдЯрд░ рдЪреЗрдХ



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



рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдордп-рд╕рдордп рдкрд░, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдЕрд░реНрдерд╣реАрди рдЪреЗрдХ рдХреЛрдб рдореЗрдВ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

 HRESULT STDMETHODCALLTYPE QWindowsEnumerate::Clone( IEnumVARIANT **ppEnum) { QWindowsEnumerate *penum = 0; *ppEnum = 0; penum = new QWindowsEnumerate(array); if (!penum) return E_OUTOFMEMORY; .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V668 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл 'penum' рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреЛрдИ рд╕рдордЭрджрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореГрддрд┐ рдХреЛ 'рдирдП' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред qwindowsmsaaaccessible.cpp 141



рдРрд╕реЗ рдХреБрдЫ рдФрд░ рдЪреЗрдХ рд╣реИрдВ: main.cpp 127, qaudiodevicefactory.cpp 236, qaudiodevicefactory.cpp 263, qaudiobuffer.cpp 488, mfvideorenderercrolrol.cpp 143, mfvideorenderercontrol.cpp 158, mfvideorenderercontrolред , рд╕реНрдерд┐рддрд┐рдкреЙрд▓рд┐рдлреИрдХреНрдЯреА.рд╕реАрдкреА 60ред



рдЕрдВрдзреЗрд░рд╛ рдкрдХреНрд╖



рдЕрдВрдзреЗрд░рд╛ рдкрдХреНрд╖



рдХреЛрдб рдХреЗ рджреЛ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЧрд▓рддреА рд╣реИред рдореБрдЭреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд╣реАрдВ рдкрддрд╛ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рднрд▓реЗ рд╣реА рдпреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рди рд╣реЛрдВ, рддреЛ рдпрд╣ C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдХрд╛рд▓рд╛ рдкрдХреНрд╖ рд╣реИред

 class Q_CORE_EXPORT QObject { .... virtual ~QObject(); virtual bool event(QEvent *); virtual bool eventFilter(QObject *, QEvent *); .... }; QObject *QQmlVME::run(....) { .... QObject *o = (QObject *)operator new(instr.typeSize + sizeof(QQmlData)); ::memset(static_cast<void *>(o), 0, instr.typeSize + sizeof(QQmlData)); .... }
      
      





PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА: V598 'рдореЗрдорд╕реЗрдЯ' рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ 'QObject' рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╢реВрдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд┐рдзрд┐ рддрд╛рд▓рд┐рдХрд╛ рдЗрд╕рд╕реЗ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧреАред qqmlvme.cpp 658



QObject рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рддрд░реАрдХреЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрдорд╕реЗрдЯ () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред



рдПрдХ рдЕрдиреНрдп рдЪреЗрддрд╛рд╡рдиреА: V598 'рдореЗрдорд╕реЗрдЯ' рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ 'QObject' рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЕрд╢рдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд┐рдзрд┐ рддрд╛рд▓рд┐рдХрд╛ рдЗрд╕рд╕реЗ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧреАред qdeclarativevme.cpp 286



рдбреЗрд░реЗрдлреНрд░реЗрдВрд╕рд┐рдВрдЧ рдирд▓ рдкреЙрдЗрдВрдЯрд░реНрд╕



рд╢рд╛рдпрдж рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЯрд╛рдЗрдкреЛрд╕ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрд▓рдЧ рд╕рдореВрд╣ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЧрд╣рд░реЗ рдФрд░ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рд▓рдЧрддреЗ рд╣реИрдВред



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



рдЪрд▓реЛ рдЕрд╢рдХреНрдд рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВред



рдЯрд╛рдЗрдкреЛ рдХреЗ рдХрд╛рд░рдг рдЯрд╛рдЗрдкреЛ рдбреАрдлреНрд░реЗрдВрд╕рд┐рдВрдЧ

 QV4::ReturnedValue QQuickJSContext2DPixelData::getIndexed( QV4::Managed *m, uint index, bool *hasProperty) { .... if (!m) return m->engine()->currentContext()->throwTypeError(); .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V522 рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ 'm' рдХреА рдбреЗрд░реЗрдлреЗрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддреА рд╣реИред qquickcontext2d.cpp 3169



рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдСрдкрд░реЗрдЯрд░ '!' рдпрд╣рд╛рдБ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реИред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯрд╛рдЗрдкреЛ рдПрдХ рдЧрдВрднреАрд░ рдЧрд▓рддреА рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред



рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдирд▓ рдкреЙрдЗрдВрдЯрд░ рдбрд┐рдлрд░реЗрдВрд╕

 void QDocIndexFiles::readIndexSection(....) { .... DocNode* dn = qdb_->findGroup(groupNames[i]); if (dn) { dn->addMember(node); } else { .... qDebug() << "DID NOT FIND GROUP:" << dn->name() << "for:" << node->name(); } .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V522 рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ 'dn' рдХреЗ рд╕реНрдерд╛рди рдкрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред qdocindexfiles.cpp 539



рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рдПрдХ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕рдВрджреЗрд╢ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реЗ рдЗрд╕рдореЗрдВ рдПрдХ рдирдЧрдгреНрдп рд╡рд╕реНрддреБ рд╕реЗ рдПрдХ рдирд╛рдо рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ: dn-> рдирд╛рдо ()ред



82 рд╕рдВрднрд╛рд╡рд┐рдд рдирд▓ рдкреЙрдЗрдВрдЯрд░ рдбреЗрдлрд░реЗрдВрд╕



Qt рд╕рд╣рд┐рдд рд▓рдЧрднрдЧ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рд╢реВрдиреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЦрд╛рдорд┐рдпрд╛рдВ рд╣реИрдВред рдЕрдХреНрд╕рд░, рд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рддреНрдпрд╛рдкрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕реВрдЪрдХ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред



рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕реЗ рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдкрд░ рдкреЙрдЗрдВрдЯрд░ рдкрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреЗрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИред



рдЦрддрд░рдирд╛рдХ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 static int gray_raster_render(....) { const QT_FT_Outline* outline = (const QT_FT_Outline*)params->source; .... /* return immediately if the outline is empty */ if ( outline->n_points == 0 || outline->n_contours <= 0 ) return 0; if ( !outline || !outline->contours || !outline->points ) return ErrRaster_Invalid_Outline; .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V595 'рдЖрдЙрдЯрд▓рд╛рдЗрди' рдкреЙрдЗрдВрдЯрд░ рдХреЛ nullptr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 1746, 1749. qgrayraster.c 1746



рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдЙрд╕ рд╕рдордп рджрд┐рдЦрд╛рдИ рджреА рдЬрдм рд╡реЗ рдЧреНрд░реЗ_рд░рд╛рд╕реНрдЯрд░_рд░реЗрдВрдбрд░ () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реНрдг рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдореЗрдВ, рдпреЗ рд▓рд╛рдЗрдиреЗрдВ рдбрд╛рд▓реА рдЧрдИ рдереАрдВ:

 /* return immediately if the outline is empty */ if ( outline->n_points == 0 || outline->n_contours <= 0 ) return 0;
      
      





рдкрд░реЗрд╢рд╛рдиреА рдпрд╣ рд╣реИ рдХрд┐ 'рдЖрдЙрдЯрд▓рд╛рдЗрди' рдкреЙрдЗрдВрдЯрд░ рд╕реЗ рдЕрд╢рдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рдХрд┐ рдкреЙрдЗрдВрдЯрд░ рд╢реВрдиреНрдп рд╣реИ, рдереЛрдбрд╝рд╛ рдХрдо рд╣реИред



рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдЕрдиреНрдп 81 рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВред рдореИрдВ рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕рдВрджреЗрд╢ рджреВрдВрдЧрд╛ : qt-v595.txt ред



рдЕрдиреБрддреНрддрд░рд┐рдд рдкреНрд░рд╢реНрди



рдЙрддреНрддрд░ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рд╢реНрди



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



рдбрдмрд▓ рдЪреЗрдХ

 QWindowsFontEngine::~QWindowsFontEngine() { .... if (QWindowsContext::verboseFonts) if (QWindowsContext::verboseFonts) qDebug("%s: font='%s", __FUNCTION__, qPrintable(_name)); .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V571 рдЖрд╡рд░реНрддреА рдЬрд╛рдБрдЪред 'If (QWindowsContext :: verboseFonts)' рдХреА рд╕реНрдерд┐рддрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 369 рд▓рд╛рдЗрди рдореЗрдВ рд╕рддреНрдпрд╛рдкрд┐рдд рдереАред qwindowsfontengine.cpp 370



рдПрдХ рд╣реА рдЪреАрдЬ рдХреА рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХреНрдпреЛрдВ? рд╢рд╛рдпрдж рдПрдХ рдЪреЗрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред рд╢рд╛рдпрдж рд╡реЗ рдХреБрдЫ рдФрд░ рдЬрд╛рдВрдЪрдирд╛ рднреВрд▓ рдЧрдПред



рджреЛрд╣рд░рд╛ рдХрд╛рдо

 void Moc::parse() { .... index = def.begin + 1; namespaceList += def; index = rewind; .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V519 'рд╕реВрдЪрдХрд╛рдВрдХ' рдЪрд░ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 568, 570. moc.cpp 570



рдЪрд░ 'рд╕реВрдЪрдХрд╛рдВрдХ' рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рди рдХреНрдпреЛрдВ рджрд┐рдП рдЧрдП рд╣реИрдВ?



рдХреБрдЫ рдЕрдиреНрдп рд╕рдорд╛рди рдЕрдЬреАрдм рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реИрдВ: рд╕рдВрджрд┐рдЧреНрдз рд▓рд╛рдкрддрд╛ рд╕рдВрдЪрд╛рд▓рдХ

 bool GSuggestCompletion::eventFilter(QObject *obj, QEvent *ev) { .... switch (key) { case Qt::Key_Enter: case Qt::Key_Return: doneCompletion(); consumed = true; case Qt::Key_Escape: editor->setFocus(); popup->hide(); consumed = true; case Qt::Key_Up: case Qt::Key_Down: case Qt::Key_Home: case Qt::Key_End: case Qt::Key_PageUp: case Qt::Key_PageDown: break; .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V519 'рдЙрдкрднреЛрдЧ' рдЪрд░ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 110, 115. googlesuggest.cpp 115



рдмреНрд░реЗрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдпрд╣рд╛рдВ рднреВрд▓ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?



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



рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмреНрд░реЗрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд╕рдВрджреЗрд╣

 bool QHelpGenerator::registerVirtualFolder(....) { .... while (d->query->next()) { d->namespaceId = d->query->value(0).toInt(); break; } .... }
      
      





рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА: рд╡реА 612 рдПрдХ рд▓реВрдк рдХреЗ рднреАрддрд░ рдмрд┐рдирд╛ рд╢рд░реНрдд 'рдмреНрд░реЗрдХ'ред qhelpgenerator.cpp 429



рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ рдХрд┐ 'рдмреНрд░реЗрдХ' рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдХрд╛рд░рдг рд▓реВрдк рддреБрд░рдВрдд рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ?



рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдФрд░ рдЯреБрдХрдбрд╝рд╛ рдпрд╣рд╛рдБ рд░рд╣рддрд╛ рд╣реИ: qhelpgenerator.cpp 642



рдЕрдиреЗрдХ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣



рдзреИрд░реНрдп рд░рдЦреЗрдВред рд▓реЗрдЦ рдЬрд▓реНрдж рд╣реА рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрднреА рднреА рдХреБрдЫ motley рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реИрдВред



рдЯреЙрд╡рд▓рд░ () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЧрд▓рдд рдЙрдкрдпреЛрдЧ

 int main(int argc, char **argv) { .... QByteArray arg(argv[a]); .... arg = arg.mid(1); arg.toLower(); if (arg == "o") .... }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V530 'toLower' рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░рд┐рдЯрд░реНрди рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред main.cpp 72



'Tolower ()' рдлрд╝рдВрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬреЛ рд▓реЛрдЕрд░рдХреЗрд╕ рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред



рдПрдХ рдФрд░ рдЧрд▓рддреА: V530 рдлрд╝рдВрдХреНрд╢рди 'рд▓реМрд╡рд░' рдХреА рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред main.cpp 1522



рдХрд┐рд╕реА рд╡реНрдпреВрд╣ рдХреА рд╕реАрдорд╛ рд╕реЗ рдкрд░реЗ рдЬрд╛рдирд╛



рд╕реНрдерд┐рддрд┐ рдЬрдЯрд┐рд▓ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВред



рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ:

 typedef enum { JNone, JCausing, JDual, JRight, JTransparent } Joining;
      
      





рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ JTransparent == 4



рдЕрдм getNkoJoining () рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 static Joining getNkoJoining(unsigned short uc) { if (uc < 0x7ca) return JNone; if (uc <= 0x7ea) return JDual; if (uc <= 0x7f3) return JTransparent; if (uc <= 0x7f9) return JNone; if (uc == 0x7fa) return JCausing; return JNone; }
      
      





рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди 'JTransparent' рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдлрд╝рдВрдХреНрд╢рди 4 рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред



рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИ 'join_table':

 static const JoiningPair joining_table[5][4] = { .... };
      
      





рдФрд░ рдЕрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ:

 static void getNkoProperties(....) { .... Joining j = getNkoJoining(chars[0]); ArabicShape shape = joining_table[XIsolated][j].form2; .... }
      
      





PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рдЪреЗрддрд╛рд╡рдиреА: V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'J' рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорд╛рди 4. harfbuzz-arabic.c 516 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ



рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, getNkoJoining () рдлрд╝рдВрдХреНрд╢рди рдорд╛рди 4 рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо join_table [...] [4] рд╕рд░рдгреА рдХреЗ рд╕реЗрд▓ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЕрдиреБрдордиреНрдп рдирд╣реАрдВ рд╣реИред рд╡реНрдпреВрд╣ рдХреА рд╕реАрдорд╛ рд╕реЗ рдкрд░реЗ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред



рд╡рд╣реА рд╕реНрдерд┐рддрд┐рдпрд╛рдБ

 void Node::setPageType(const QString& t) { if ((t == "API") || (t == "api")) pageType_ = ApiPage; else if (t == "howto") pageType_ = HowToPage; else if (t == "overview") pageType_ = OverviewPage; else if (t == "tutorial") pageType_ = TutorialPage; else if (t == "howto") pageType_ = HowToPage; else if (t == "article") pageType_ = ArticlePage; else if (t == "example") pageType_ = ExamplePage; else if (t == "ditamap") pageType_ = DitaMapPage; }
      
      





PVS-Studio рдЪреЗрддрд╛рд╡рдиреА: V517 'if (A) {...} рдХрд╛ рдЙрдкрдпреЛрдЧ if (A) {...}' рдкреИрдЯрд░реНрди рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 386, 392. рдиреЛрдб.рдХрдк 386



рдЪреЗрдХ рджреЛ рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЯреА == "рд╣рд╛рдЙрдЯреЛ")ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╣реИред



рдпрд╣рд╛рдБ рдХреБрдЫ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рд╣реИ: рдЙрд╕реА рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдирд╛

 void QBluetoothServiceDiscoveryAgentPrivate::_q_deviceDiscovered( const QBluetoothDeviceInfo &info) { if(mode == QBluetoothServiceDiscoveryAgent::FullDiscovery) { for(int i = 0; i < discoveredDevices.count(); i++){ if(discoveredDevices.at(i).address() == info.address()){ discoveredDevices.removeAt(i); } } discoveredDevices.prepend(info); } else { for(int i = 0; i < discoveredDevices.count(); i++){ if(discoveredDevices.at(i).address() == info.address()){ discoveredDevices.removeAt(i); } } discoveredDevices.prepend(info); } }
      
      





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



рд╢рд░реНрдд рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред



рдЗрд╕реА рддрд░рд╣: pcre_exec.c 5577, ditaxmlgenerator.cpp 1722, htmlgenerator.cpp 388ред



рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдВ



Qt рдХрдИ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рднреА рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ Qt рдореЗрдВ рднреА рд╣реИрдВред рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдЙрдирдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред



рдореИрдВрдиреЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рд▓рд┐рдЦрд╛: qt-3rdparty.txt ред



рдиреЛрдЯред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд┐рд╕реА рдХреЛ рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВрдиреЗ рдХреНрдпреВрдЯреА рдХреЛ рдмрд╣реБрдд рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦрд╛ред рдПрдХ рдмрдбрд╝реЗ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рддрд╣реА рдирд┐рд░реАрдХреНрд╖рдг рдХреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред



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



рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ, рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реИ рдЬреЛ рдХреНрдпреВрдЯреА рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдЪрд┐рдХрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред



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



рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ



  1. рд╣рдо рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Tor, Chromium, Clang, Firebird, OpenCVред рдЬреЛ рднреА рдЗрдЪреНрдЫреБрдХ рд╣реИ, рдпрд╣рд╛рдВ рдЖрдПрдВ: " рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдПрдХ рдЕрджреНрдпрддрди рд╕реВрдЪреА рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ ред"
  2. рдпрд╣рд╛рдВ рдЖрдк рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЕрд▓рд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 20 рдХреНрд▓рд┐рдХ рд╣реИрдВред рдЕрдкрдиреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдПрдХ рдФрд░ 200 рдХреНрд▓рд┐рдХред




рдпрд╣ рд▓реЗрдЦ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╣реИред



рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдПрдВрдбреНрд░реА рдХрд╛рд░рдкреЛрд╡ред Qt 5 рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЬрд╛рдБрдЪ ред



рдиреАрдЪреЗ рдкреНрд░рд╢реНрди



рдХреНрдпрд╛ рдЖрдкрдиреЗ рд▓реЗрдЦ рдкрдврд╝рд╛ рд╣реИ рдФрд░ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИ?
рдЕрдХреНрд╕рд░ рд╣рдорд╛рд░реЗ рд▓реЗрдЦреЛрдВ рд╕реЗ рд╡рд╣реА рдкреНрд░рд╢реНрди рдкреВрдЫреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдпрд╣рд╛рдВ рдЙрдирдХреЗ рдЙрддреНрддрд░ рдПрдХрддреНрд░ рдХрд┐рдП рд╣реИрдВ: рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдХреИрдкреНрдкрдХреИрдЯ, рд╕рдВрд╕реНрдХрд░рдг 2014 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦреЛрдВ рдХреЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм ред рдХреГрдкрдпрд╛ рд╕реВрдЪреА рджреЗрдЦреЗрдВред




All Articles