OSDN Git Service

This patch will avoid SIGFPE on some geo functions , if PostgreSQL is compiled
authorBruce Momjian <bruce@momjian.us>
Tue, 21 Dec 1999 17:01:44 +0000 (17:01 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 21 Dec 1999 17:01:44 +0000 (17:01 +0000)
with DEC C.

DEC C doesn't handle double values greater than DBL_MAX, but some
PostgreSQL geo functions assign greater than DBL_MAX values to some vars
in some special cases - that couses SIGFPE. I dunno if that is the only place
to fix to work well with DEC C.

Kirill Nosov.

src/backend/utils/adt/geo_ops.c

index 7bb2aba..b56b7f5 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.45 1999/07/17 20:17:56 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.46 1999/12/21 17:01:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -876,7 +876,10 @@ line_construct_pm(Point *pt, double m)
        /* use "mx - y + yinter = 0" */
        result->A = m;
        result->B = -1.0;
-       result->C = pt->y - m * pt->x;
+       if (m==DBL_MAX) 
+               result->C = pt->y;
+       else
+               result->C = pt->y - m * pt->x;
 
 #ifdef NOT_USED
        result->m = m;