summaryrefslogtreecommitdiff
path: root/sql/spatial.h
diff options
context:
space:
mode:
authorDavi Arnaut <Davi.Arnaut@Sun.COM>2010-07-14 11:12:26 -0300
committerDavi Arnaut <Davi.Arnaut@Sun.COM>2010-07-14 11:12:26 -0300
commit7f1eedec2d70c3afe3b9b1c788d357322189a237 (patch)
treec1cb5b7c9fbb5fd6901154d278efe7223b5cac53 /sql/spatial.h
parent4972f4d8030b5fc053b3c5605505215a653a39e1 (diff)
parentf317d3a6fb413cfc04c1ed005df8e859664e41d5 (diff)
downloadmariadb-git-7f1eedec2d70c3afe3b9b1c788d357322189a237.tar.gz
Merge of mysql-5.1-bugteam into mysql-trunk-merge.
Diffstat (limited to 'sql/spatial.h')
-rw-r--r--sql/spatial.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/sql/spatial.h b/sql/spatial.h
index aabbb7a1b97..b0c609ceeef 100644
--- a/sql/spatial.h
+++ b/sql/spatial.h
@@ -17,6 +17,7 @@
#define _spatial_h
#include "sql_string.h" /* String, LEX_STRING */
+#include <my_compiler.h>
#ifdef HAVE_SPATIAL
@@ -229,15 +230,18 @@ public:
{
wkb_xdr= 0, /* Big Endian */
wkb_ndr= 1 /* Little Endian */
- };
+ };
+
+ /** Callback which creates Geometry objects on top of a given placement. */
+ typedef Geometry *(*create_geom_t)(char *);
class Class_info
{
public:
LEX_STRING m_name;
int m_type_id;
- void (*m_create_func)(void *);
- Class_info(const char *name, int type_id, void(*create_func)(void *));
+ create_geom_t m_create_func;
+ Class_info(const char *name, int type_id, create_geom_t create_func);
};
virtual const Class_info *get_class_info() const=0;
@@ -525,10 +529,8 @@ public:
const Class_info *get_class_info() const;
};
-struct Geometry_buffer
-{
- Aligned_char_array<sizeof(Gis_point)> buf;
-};
+struct Geometry_buffer : public
+ my_aligned_storage<sizeof(Gis_point), MY_ALIGNOF(Gis_point)> {};
#endif /*HAVE_SPATAIAL*/
#endif