summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2001-05-10 17:41:41 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2001-05-10 17:41:41 +0000
commitdbed2027444338dc09fc102d6f4bd5c707c238d7 (patch)
tree13e2805c93fea3ab3b67c310d9b0fb76f5a3dfc4 /src
parentbd3d9b9d0497e64feec50153ad953a58a35bcd89 (diff)
fixed some divide by zero problems found w/ conform
Diffstat (limited to 'src')
-rw-r--r--src/mesa/swrast/s_aaline.c7
-rw-r--r--src/mesa/swrast/s_aalinetemp.h16
-rw-r--r--src/mesa/swrast/s_aatriangle.c7
3 files changed, 17 insertions, 13 deletions
diff --git a/src/mesa/swrast/s_aaline.c b/src/mesa/swrast/s_aaline.c
index f60233c3ac..7ce0d6b708 100644
--- a/src/mesa/swrast/s_aaline.c
+++ b/src/mesa/swrast/s_aaline.c
@@ -1,4 +1,4 @@
-/* $Id: s_aaline.c,v 1.8 2001/04/10 15:46:51 brianp Exp $ */
+/* $Id: s_aaline.c,v 1.9 2001/05/10 17:41:41 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -201,7 +201,10 @@ compute_lambda(const GLfloat sPlane[4], const GLfloat tPlane[4],
GLfloat r2 = dvdx * dvdx + dvdy * dvdy;
GLfloat rho2 = r1 + r2;
/* return log base 2 of rho */
- return log(rho2) * 1.442695 * 0.5; /* 1.442695 = 1/log(2) */
+ if (rho2 == 0.0F)
+ return 0.0;
+ else
+ return log(rho2) * 1.442695 * 0.5; /* 1.442695 = 1/log(2) */
}
diff --git a/src/mesa/swrast/s_aalinetemp.h b/src/mesa/swrast/s_aalinetemp.h
index 53a2b55ddf..262af3ee3b 100644
--- a/src/mesa/swrast/s_aalinetemp.h
+++ b/src/mesa/swrast/s_aalinetemp.h
@@ -1,4 +1,4 @@
-/* $Id: s_aalinetemp.h,v 1.8 2001/05/03 22:13:32 brianp Exp $ */
+/* $Id: s_aalinetemp.h,v 1.9 2001/05/10 17:41:41 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -166,14 +166,12 @@ NAME(line)(GLcontext *ctx, const SWvertex *v0, const SWvertex *v1)
line.dy = line.y1 - line.y0;
line.len = sqrt(line.dx * line.dx + line.dy * line.dy);
line.halfWidth = 0.5F * ctx->Line.Width;
- if (line.len == 0.0) {
- line.xAdj = 0.0;
- line.yAdj = 0.0;
- }
- else {
- line.xAdj = line.dx / line.len * line.halfWidth;
- line.yAdj = line.dy / line.len * line.halfWidth;
- }
+
+ if (line.len == 0.0)
+ return;
+
+ line.xAdj = line.dx / line.len * line.halfWidth;
+ line.yAdj = line.dy / line.len * line.halfWidth;
#ifdef DO_Z
compute_plane(line.x0, line.y0, line.x1, line.y1,
diff --git a/src/mesa/swrast/s_aatriangle.c b/src/mesa/swrast/s_aatriangle.c
index 8235e957e3..9a9eb877f1 100644
--- a/src/mesa/swrast/s_aatriangle.c
+++ b/src/mesa/swrast/s_aatriangle.c
@@ -1,4 +1,4 @@
-/* $Id: s_aatriangle.c,v 1.13 2001/04/10 15:46:51 brianp Exp $ */
+/* $Id: s_aatriangle.c,v 1.14 2001/05/10 17:41:41 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -341,7 +341,10 @@ compute_lambda(const GLfloat sPlane[4], const GLfloat tPlane[4],
GLfloat r2 = dvdx * dvdx + dvdy * dvdy;
GLfloat rho2 = r1 + r2;
/* return log base 2 of rho */
- return log(rho2) * 1.442695 * 0.5; /* 1.442695 = 1/log(2) */
+ if (rho2 == 0.0F)
+ return 0.0;
+ else
+ return log(rho2) * 1.442695 * 0.5; /* 1.442695 = 1/log(2) */
}