double and float fix
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Tue, 23 Aug 2005 23:00:45 +0000 (23:00 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Tue, 23 Aug 2005 23:00:45 +0000 (23:00 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@1067 04897980-b3bd-0310-b5e0-8ef037075253

ltt/branches/poly/ltt/event.c

index 3f8dab9c378224c6d7328daa042f6c1f6b88d7c1..a5b046814027e30f74b3f9410518a85284cebdb0 100644 (file)
@@ -622,7 +622,8 @@ float ltt_event_get_float(LttEvent *e, LttField *f)
   if(reverse_byte_order == 0) return *(float *)(e->data + f->offset_root);
   else{
     void *ptr = e->data + f->offset_root;
-    return *(float*)bswap_32(*(guint32*)ptr);
+    guint32 value = bswap_32(*(guint32*)ptr);
+    return *(float*)&value;
   }
 }
 
@@ -636,7 +637,8 @@ double ltt_event_get_double(LttEvent *e, LttField *f)
   if(reverse_byte_order == 0) return *(double *)(e->data + f->offset_root);
   else {
     void *ptr = e->data + f->offset_root;
-    return *(double*)bswap_64(*(guint64*)ptr);
+    guint64 value = bswap_64(*(guint64*)ptr);
+    return *(double*)&value;
   }
 }
 
This page took 0.024544 seconds and 4 git commands to generate.