summaryrefslogtreecommitdiff
path: root/sql/spatial.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/spatial.h')
-rw-r--r--sql/spatial.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/sql/spatial.h b/sql/spatial.h
index 45db1ca8d00..b96434831a1 100644
--- a/sql/spatial.h
+++ b/sql/spatial.h
@@ -97,12 +97,14 @@ struct MBR
int equals(const MBR *mbr)
{
+ /* The following should be safe, even if we compare doubles */
return ((mbr->xmin == xmin) && (mbr->ymin == ymin) &&
(mbr->xmax == xmax) && (mbr->ymax == ymax));
}
int disjoint(const MBR *mbr)
{
+ /* The following should be safe, even if we compare doubles */
return ((mbr->xmin > xmax) || (mbr->ymin > ymax) ||
(mbr->xmax < xmin) || (mbr->ymax < ymin));
}
@@ -114,6 +116,7 @@ struct MBR
int touches(const MBR *mbr)
{
+ /* The following should be safe, even if we compare doubles */
return ((((mbr->xmin == xmax) || (mbr->xmax == xmin)) &&
((mbr->ymin >= ymin) && (mbr->ymin <= ymax) ||
(mbr->ymax >= ymin) && (mbr->ymax <= ymax))) ||
@@ -124,18 +127,21 @@ struct MBR
int within(const MBR *mbr)
{
+ /* The following should be safe, even if we compare doubles */
return ((mbr->xmin <= xmin) && (mbr->ymin <= ymin) &&
(mbr->xmax >= xmax) && (mbr->ymax >= ymax));
}
int contains(const MBR *mbr)
{
+ /* The following should be safe, even if we compare doubles */
return ((mbr->xmin >= xmin) && (mbr->ymin >= ymin) &&
(mbr->xmax <= xmax) && (mbr->ymax <= ymax));
}
bool inner_point(double x, double y) const
{
+ /* The following should be safe, even if we compare doubles */
return (xmin<x) && (xmax>x) && (ymin<y) && (ymax>x);
}
@@ -164,6 +170,9 @@ public:
return buffer;
}
+ static void operator delete(void *ptr, void *buffer)
+ {}
+
enum wkbType
{
wkb_point= 1,