fix-Abs-parenthesis
authorDebian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Fri, 6 May 2011 13:52:41 +0000 (14:52 +0100)
committerAdam C. Powell, IV <hazelsct@debian.org>
Fri, 6 May 2011 13:52:41 +0000 (14:52 +0100)
Replace Abs(foo < bar) by Abs(foo) < bar

This is legal C++, but certainly not the expected result,
(foo < bar) is a boolean which is promoted to an int, and
the function Abs(int) is called.

These bugs have been reported by Fotios Sioutis on the
opencascade forum.
Submitted upstream: http://www.opencascade.org/org/forum/thread_20187/

Gbp-Pq: Topic submitted
Gbp-Pq: Name fix-Abs-parenthesis.patch

ros/src/Adaptor3d/Adaptor3d_CurveOnSurface.cxx
ros/src/Aspect/Aspect_RectangularGrid.cxx
ros/src/GeomFill/GeomFill_BoundWithSurf.cxx

index 2774e0f13d54b3503403693c597d8380964ea6dc..9fc7ccc4fd7eb5b92db69a5e2c22382701fd8ef8 100644 (file)
@@ -133,7 +133,7 @@ static void Hunt(const TColStd_Array1OfReal& Arr,
   if(Abs(Coord-Arr(i))<Tol)
     Iloc = i;
   else
-    if(Abs(Coord-Arr(i)>Tol)) Standard_NotImplemented::Raise("Adaptor3d_CurveOnSurface:Hunt");
+    if(Abs(Coord-Arr(i))>Tol) Standard_NotImplemented::Raise("Adaptor3d_CurveOnSurface:Hunt");
 }
 
 //=======================================================================
index 6ee81faf942de9f6f0423656967fe913e54e8fd3..29415b99033661686982d7f7de173e2555f100da 100644 (file)
@@ -163,7 +163,7 @@ void Aspect_RectangularGrid::Init () {
 
 Standard_Boolean Aspect_RectangularGrid::CheckAngle(const Standard_Real alpha,
                                             const Standard_Real beta) const {
-  return Abs( Sin(alpha)*Cos(beta+Standard_PI/2.) - Cos(alpha)*Sin(beta+Standard_PI/2.) != 0) ;
+  return Abs( Sin(alpha)*Cos(beta+Standard_PI/2.) - Cos(alpha)*Sin(beta+Standard_PI/2.)) != 0 ;
 }
 
 
index 0eabeee03b783c6494998c67cc84e8968737b235..3f4ab464e905650785de1297850fa6f80420deb4 100644 (file)
@@ -121,7 +121,7 @@ void GeomFill_BoundWithSurf::D1Norm(const Standard_Real U,
   Standard_Real nsuu = N.Dot(Suu), nsuv = N.Dot(Suv), nsvv = N.Dot(Svv);
   Standard_Real susu = Su.Dot(Su), susv = Su.Dot(Sv), svsv = Sv.Dot(Sv);
   Standard_Real deno = (susu*svsv) - (susv*susv);
-  if(Abs(deno < 1.e-16)){
+  if(Abs(deno) < 1.e-16){
     // on embraye sur un calcul approche, c est mieux que rien!?!
     gp_Vec temp = Norm(U + 1.e-12);
     DN = N.Multiplied(-1.);