From: abv Date: Fri, 29 Sep 2017 16:04:13 +0000 (+0300) Subject: 0029165: Visualization - misuse of enumeration in Prs3d_DatumAspect X-Git-Tag: V7_3_0_beta~240 X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=commitdiff_plain;h=03d960b8de01cb671fc5df31b693da3b56adfcef 0029165: Visualization - misuse of enumeration in Prs3d_DatumAspect Methods SetDrawFirstAndSecondAxis() and SetDrawThirdAxis() of the class Prs3d_DatumAspect are corrected to ensure that myAxis may be set only to valid values of the enum, and avoid unsafe operations. --- diff --git a/src/Prs3d/Prs3d_DatumAspect.cxx b/src/Prs3d/Prs3d_DatumAspect.cxx index 974538b3d6..9a691cf6cf 100644 --- a/src/Prs3d/Prs3d_DatumAspect.cxx +++ b/src/Prs3d/Prs3d_DatumAspect.cxx @@ -85,11 +85,11 @@ void Prs3d_DatumAspect::SetDrawFirstAndSecondAxis (Standard_Boolean theToDraw) { if (theToDraw) { - myAxes = Prs3d_DatumAxes(myAxes | Prs3d_DA_XAxis | Prs3d_DA_YAxis); + myAxes = ((myAxes & Prs3d_DA_ZAxis) != 0 ? Prs3d_DA_XYZAxis : Prs3d_DA_XYAxis); } else { - myAxes = Prs3d_DatumAxes(myAxes & !Prs3d_DA_XAxis & !Prs3d_DA_YAxis); + myAxes = Prs3d_DA_ZAxis; } } @@ -101,11 +101,11 @@ void Prs3d_DatumAspect::SetDrawThirdAxis (Standard_Boolean theToDraw) { if (theToDraw) { - myAxes = Prs3d_DatumAxes(myAxes | Prs3d_DA_ZAxis); + myAxes = ((myAxes & Prs3d_DA_XYAxis) != 0 ? Prs3d_DA_XYZAxis : Prs3d_DA_ZAxis); } else { - myAxes = Prs3d_DatumAxes(myAxes & !Prs3d_DA_ZAxis); + myAxes = Prs3d_DA_XYAxis; } }