рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рдирдХреНрд╢реЗрдХрджрдо рдкрд░ рдЪрд▓реЗрдВ: рдХрд▓рдХрд▓реЗрдЯ


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

рдкрд░рд┐рдЪрдп


Qalculate! рдПрдХ рдмрд╣реБрдЙрджреНрджреЗрд╢реНрдпреАрдп рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдбреЗрд╕реНрдХрдЯреЙрдк рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░ рдЬрдЯрд┐рд▓ рдЧрдгрд┐рдд рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╢рдХреНрддрд┐ рдФрд░ рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг (рдЬреИрд╕реЗ рдореБрджреНрд░рд╛ рд░реВрдкрд╛рдВрддрд░рдг рдФрд░ рдкреНрд░рддрд┐рд╢рдд рдЧрдгрдирд╛)ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рджреЛ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: libqalculate (рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ CLI) рдФрд░ qalculate-gtk (GTK + UI)ред рдЕрдзреНрдпрдпрди рдореЗрдВ рдХреЗрд╡рд▓ libqalculate рдХреЛрдб рд╢рд╛рдорд┐рд▓ рдерд╛ред

рд╡рд┐рдВрдбреЛрдЬ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЖрд╕рд╛рдиреА рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬрд╛рдВрдЪрд╛ рд╣реИ, рдореИрдВ libqalculal рдХреЗ рд▓рд┐рдП рдХреНрд▓реЛрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗ рд░рд╣рд╛ рд╣реВрдВ:


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

рд╡реИрд╕реЗ, рдпрд╣рд╛рдВ Microsoft рд╕реЗ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: " рд╡рд┐рдВрдбреЛрдЬ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдореЗрдВ рдХреАрдбрд╝реЗ рдЧрд┐рдирдирд╛ "ред

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдг PVS-Studio рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реИред рдпрд╣ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдХреАрдбрд╝реЗ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬред рд╕рдорд░реНрдерд┐рдд рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: C, C ++, C # рдФрд░ Javaред рдЖрдк рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдФрд░ рдЯрд╛рдЗрдкреЛ рдлрд┐рд░ рд╕реЗ!


V523 'рддрддреНрдХрд╛рд▓реАрди' рдХрдерди 'рдФрд░' рдХрдерди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдирдВрдмрд░.рд╕реАрд╕реА 4018

bool Number::square() { .... if(mpfr_cmpabs(i_value->internalLowerFloat(), i_value->internalUpperFloat()) > 0) { mpfr_sqr(f_tmp, i_value->internalLowerFloat(), MPFR_RNDU); mpfr_sub(f_rl, f_rl, f_tmp, MPFR_RNDD); } else { mpfr_sqr(f_tmp, i_value->internalLowerFloat(), MPFR_RNDU); mpfr_sub(f_rl, f_rl, f_tmp, MPFR_RNDD); } .... } 

рдХреЛрдб рдмрд┐рд▓реНрдХреБрд▓ рдФрд░ рдЕрдЧрд░ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдорд╛рди рд╣реИ ред рдЖрд╕рдиреНрди рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдЗрд╕ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: internalLowerFloat () рдФрд░ internalUpperFloat () ред рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдХрд┐ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдХреЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдФрд░ рдпрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рд╕рд╣реА рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ред

V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ '! Mtr2.number ()ред IsReal ()' рдмрд╛рдИрдВ рдУрд░ рдФрд░ рджрд╛рдИрдВ рдУрд░ '' || рдСрдкрд░реЗрдЯрд░ред рдмрд┐рд▓рд┐рдирдлреИрдХреНрд╢рди .cc 6274

 int IntegrateFunction::calculate(....) { .... if(!mtr2.isNumber() || !mtr2.number().isReal() || !mtr.isNumber() || !mtr2.number().isReal()) b_unknown_precision = true; .... } 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдП рдЧрдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдВ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ рдХрд┐ рдПрдХ рд╕реНрдерд╛рди рдкрд░ mtr2 рдХреЛ mtr рдХреЗ рдмрдЬрд╛рдп рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, mtr.number ()ред IsReal () рдлрд╝рдВрдХреНрд╢рди рдХреА рдХреЙрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИред

V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ 'vargs [1] .representsNonPositive ()' рдмрд╛рдИрдВ рдУрд░ рдФрд░ 'рджрд╛рдИрдВ рдУрд░' || рдСрдкрд░реЗрдЯрд░ред рдмрд┐рд▓рд┐рдирдлрдВрдХреНрд╢рдВрд╕ .cc 5785



рд╣рдореЗрдВ рдЗрд╕ рдХреЛрдб рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрднреА рднреА рджреЛрд╖ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реЛрдЧрд╛! рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпреЗ рдЯреБрдХрдбрд╝реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдиреЗ рдПрдХ рдбреБрдкреНрд▓рд┐рдХреЗрдЯреЗрдб рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рд╡рд░реНрдЬрди [1] .representsNonPositive () рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЯрд╛рдЗрдкреЛ рдпрд╛, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рд╕рдВрджрд┐рдЧреНрдз рд╕реНрдерд╛рдиреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдХреЛрдИ рднреА рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред

  • V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ 'vargs [1] .representsNonPositive ()' рдмрд╛рдИрдВ рдУрд░ рдФрд░ 'рджрд╛рдИрдВ рдУрд░' || рдСрдкрд░реЗрдЯрд░ред рдмрд┐рд▓рд┐рдирдлрдВрдХреНрд╢рдВрд╕ .cc 5788
  • V501 рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдкрд░рд┐рд╢рд┐рд╖реНрдЯ' рд╣реИрдВред MathStructure.cc 1780
  • V501 рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдкрд░рд┐рд╢рд┐рд╖реНрдЯ' рд╣реИрдВред рдореИрдерд╕реНрдЯреНрд░рдХреНрдЪрд░.рд╕реАрд╕реА 2043
  • V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ (* * v_subs [v_order [1]])ред рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рд░рд┐рдкреНрд░реЗрдЬреЗрдВрдЯ рдиреЗрд╢рдиреЗрдЯрд┐рд╡ (рдЯреНрд░реВ)ред MathStructure.cc 5569

рдЧрд▓рдд рд╣рд╛рд▓рдд рдХреЗ рд╕рд╛рде рдкрд╛рд╢


V534 рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ 'рдХреЗ рд▓рд┐рдП' рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЧрд▓рдд рдЪрд░ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред 'I' рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред MathStructure.cc 28741

 bool MathStructure::isolate_x_sub(....) { .... for(size_t i = 0; i < mvar->size(); i++) { if((*mvar)[i].contains(x_var)) { mvar2 = &(*mvar)[i]; if(mvar->isMultiplication()) { for(size_t i2 = 0; i < mvar2->size(); i2++) { if((*mvar2)[i2].contains(x_var)) {mvar2 = &(*mvar2)[i2]; break;} } } break; } } .... } 

рдЖрдВрддрд░рд┐рдХ рд▓реВрдк рдореЗрдВ, i2 рдЪрд░ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкреЛ рдХреЗ рдХрд╛рд░рдг рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рдереА - рдмрд╛рд╣рд░реА рд▓реВрдк рд╕реЗ i рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрддрд┐рд░реЗрдХ рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐?


V590 рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЕрддреНрдпрдзрд┐рдХ рд╣реИ рдпрд╛ рдПрдХ рдЧрд▓рдд рдЪрд┐рддреНрд░рдг рд╣реИред рдирдВрдмрд░ .cc 6564

 bool Number::add(const Number &o, MathOperation op) { .... if(i1 >= COMPARISON_RESULT_UNKNOWN && (i2 == COMPARISON_RESULT_UNKNOWN || i2 != COMPARISON_RESULT_LESS)) return false; .... } 

3 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЬрдм рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛, рддреЛ рдореИрдВрдиреЗ рдореЗрд░реЗ рдФрд░ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд┐рдЯреНрдареА рд▓рд┐рдЦреА: " рд▓реЙрдЬрд┐рдХрд▓ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдЗрди рд╕реА / рд╕реА ++ред рдорд┐рд╕реНрдЯреЗрдХреНрд╕ рдореЗрдб рдмрд╛рдп рдкреНрд░реЛрдлреЗрд╢рдирд▓реНрд╕ "ред рдЬрдм рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдореЗрдВ рдЖрддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдиреЛрдЯ рдХрдо рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИред рдЖрдк рд▓реЗрдЦ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдб рдХреЗ рдЕрдиреБрд░реВрдк рддреНрд░реБрдЯрд┐ рдХрд╛ рдПрдХ рдкреИрдЯрд░реНрди рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рднреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЕрдиреБрднрд╛рдЧ "рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ ==" рдкрд░ рдЬрд╛рдПрдВрдЧреЗ ! = "рдФрд░ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ i2 == COMPARISON_RESULT_UNKNOWN рдХреБрдЫ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

Dereferencing рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рдВрдХреЗрдд


V595 nullptr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'o_data' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 1108, 1112. рдбреЗрдЯрд╛рд╕реЗрдЯ.рд╕реАрд╕реА 1108

 string DataObjectArgument::subprintlong() const { string str = _("an object from"); str += " \""; str += o_data->title(); // <= str += "\""; DataPropertyIter it; DataProperty *o = NULL; if(o_data) { // <= o = o_data->getFirstProperty(&it); } .... } 

рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ o_data рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдЪреЗрдХ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдмрд┐рдирд╛ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрдб, рдпрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ рдмрд╛рдж рдХреА рдУрд░ рдЭреБрдХ рд░рд╣рд╛ рд╣реВрдВред

рджреЛ рд╕рдорд╛рди рд╕реНрдерд╛рди рд╣реИрдВ:

  • V595 nullptr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'o_assumption' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрд╛рдБрдЪ рд▓рд╛рдЗрдиреЗрдВ: 229, 230. рдЪрд░ред 229
  • V595 nullptr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'i_value' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреЗрдХ рд▓рд╛рдЗрди: 3412, 3427. рдирдВрдмрд░ред 3412

рдореБрдлреНрдд () рдпрд╛ рд╣рдЯрд╛рдирд╛ [?


V611 рдореЗрдореЛрд░реА рдХреЛ 'рдирдП' рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди 'рдореБрдлреНрдд' рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред 'рд░реАрдореЗрдХрдкреА' рдЪрд░ рдХреЗ рдкреАрдЫреЗ рдСрдкрд░реЗрд╢рди рд▓реЙрдЬрд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдирдВрдмрд░.рд╕реАрд╕реА 8123

 string Number::print(....) const { .... while(!exact && precision2 > 0) { if(try_infinite_series) { remcopy = new mpz_t[1]; // <= mpz_init_set(*remcopy, remainder); } mpz_mul_si(remainder, remainder, base); mpz_tdiv_qr(remainder, remainder2, remainder, d); exact = (mpz_sgn(remainder2) == 0); if(!started) { started = (mpz_sgn(remainder) != 0); } if(started) { mpz_mul_si(num, num, base); mpz_add(num, num, remainder); } if(try_infinite_series) { if(started && first_rem_check == 0) { remainders.push_back(remcopy); } else { if(started) first_rem_check--; mpz_clear(*remcopy); free(remcopy); // <= } } .... } .... } 

рд░рд┐рдордХреЛрдкреА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдФрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЧрдВрднреАрд░ рддреНрд░реБрдЯрд┐ рд╣реИред

рдЦреЛрдпрд╛ рд╣реБрдЖ рдмрджрд▓рд╛рд╡


 bool expand_partial_fractions(MathStructure &m, ....) { .... if(b_poly && !mquo.isZero()) { MathStructure m = mquo; if(!mrem.isZero()) { m += mrem; m.last() *= mtest[i]; m.childrenUpdated(); } expand_partial_fractions(m, eo, false); return true; } .... } 

рдлрдВрдХреНрд╢рди рдореЗрдВ m рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рд░реЗрдлрд░реЗрдВрд╕ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдВрд╢реЛрдзрдиред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдореЗрдВ рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓рд╛ рдЪрд░ рд╣реИ, рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╣рд╛рдирд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ


V774 рдореЗрдореЛрд░реА рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж 'cu' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреИрд▓рдХреНрдпреВрд▓реЗрдЯрд░ .cc 3595

 MathStructure Calculator::convertToBestUnit(....) { .... CompositeUnit *cu = new CompositeUnit("", "...."); cu->add(....); Unit *u = getBestUnit(cu, false, eo.local_currency_conversion); if(u == cu) { delete cu; // <= return mstruct_new; } delete cu; // <= if(eo.approximation == APPROXIMATION_EXACT && cu->hasApproximateRelationTo(u, true)) { // <= if(!u->isRegistered()) delete u; return mstruct_new; } .... } 

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

рдЦреЛрдЬ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ


V797 'рдЦреЛрдЬ' рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдПрдХ рдмреВрд▓ рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрд╛ рд╣реЛред рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд░рд┐рдЯрд░реНрди рдорд╛рди рд╢рд╛рдпрдж std :: string :: npos рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред Unit.cc 404

 MathStructure &AliasUnit::convertFromFirstBaseUnit(....) const { if(i_exp != 1) mexp /= i_exp; ParseOptions po; if(isApproximate() && suncertainty.empty() && precision() == -1) { if(sinverse.find(DOT) || svalue.find(DOT)) po.read_precision = READ_PRECISION_WHEN_DECIMALS; else po.read_precision = ALWAYS_READ_PRECISION; } .... } 

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

 if( sinverse.find(DOT) != std::string::npos || svalue.find(DOT) != std::string::npos) { po.read_precision = READ_PRECISION_WHEN_DECIMALS; } 

рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡


V701 realloc () рд╕рдВрднрд╛рд╡рд┐рдд рд░рд┐рд╕рд╛рд╡: рдЬрдм realloc () рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдореВрд▓ рдкреЙрдЗрдВрдЯрд░ 'рдмрдлрд░' рдЦреЛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдкреЙрдЗрдВрдЯрд░ рдХреЛ realloc () рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред 70.cc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

 char *utf8_strdown(const char *str, int l) { #ifdef HAVE_ICU .... outlength = length + 4; buffer = (char*) realloc(buffer, outlength * sizeof(char)); // <= .... #else return NULL; #endif } 

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

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


рдж рдХрд▓рдХреБрд▓реЗрдЯ! рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдореБрдлреНрдд рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдмрд╕реЗ рдКрдкрд░ рд╣реИ, рдЬрдмрдХрд┐ рдЗрд╕рдореЗрдВ рдХрдИ рдЧрдВрднреАрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВред рджреВрд╕рд░реА рдУрд░, рд╣рдордиреЗ рдЕрднреА рддрдХ рдЗрд╕рдХреЗ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рд╣реИред рд╣рдо рд╕рднреА рд▓реЛрдХрдкреНрд░рд┐рдп рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдкрд░ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

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

рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ "рдХреИрд▓рдХреБрд▓реЗрдЯрд░" рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ - рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрдЬрд╝рдорд╛рдПрдВред :-)

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


All Articles