Clean up a bug in the new mdb_get_single/double

This commit is contained in:
whydoubt
2004-08-22 02:21:59 +00:00
parent 7959694bc5
commit 61cc7f6124
2 changed files with 9 additions and 4 deletions

View File

@@ -1,3 +1,6 @@
Sat Aug 21 21:21:56 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
* src/libmdb/file.c: Clean up a bug in the new mdb_get_single/double
Thu Aug 19 21:37:21 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
* configure.in:
* src/libmdb/file.c: Use GLib to deal with endian issues

View File

@@ -332,9 +332,10 @@ long mdb_pg_get_int32(MdbHandle *mdb, int offset)
float mdb_get_single(unsigned char *buf, int offset)
{
guint32 f;
union {guint32 g; float f;} f;
memcpy(&f, &buf[offset], 4);
return (float)GINT32_FROM_LE(f);
f.g = GUINT32_FROM_LE(f.g);
return f.f;
}
float mdb_pg_get_single(MdbHandle *mdb, int offset)
{
@@ -345,9 +346,10 @@ float mdb_pg_get_single(MdbHandle *mdb, int offset)
double mdb_get_double(unsigned char *buf, int offset)
{
guint64 d;
union {guint64 g; double d;} d;
memcpy(&d, &buf[offset], 8);
return (double)GINT64_FROM_LE(d);
d.g = GUINT64_FROM_LE(d.g);
return d.d;
}
double mdb_pg_get_double(MdbHandle *mdb, int offset)
{