X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Fevent.c;h=a5b046814027e30f74b3f9410518a85284cebdb0;hb=fadf7e8bf9429ba26e5e0b3203933c1a64c4a14d;hp=207c5d552fa8f444022eacdd35c52741992fe174;hpb=9eb6aa7a42ed8d7e5b6d095bd3c31886ab5ebd33;p=lttv.git diff --git a/ltt/branches/poly/ltt/event.c b/ltt/branches/poly/ltt/event.c index 207c5d55..a5b04681 100644 --- a/ltt/branches/poly/ltt/event.c +++ b/ltt/branches/poly/ltt/event.c @@ -26,7 +26,7 @@ #include #include -#include +#include #include "parser.h" #include @@ -614,31 +614,31 @@ gint64 ltt_event_get_long_int(LttEvent *e, LttField *f) float ltt_event_get_float(LttEvent *e, LttField *f) { - gboolean reverse_byte_order = LTT_GET_BO(e->tracefile); + g_assert(LTT_HAS_FLOAT(e->tracefile)); + gboolean reverse_byte_order = LTT_GET_FLOAT_BO(e->tracefile); g_assert(f->field_type->type_class == LTT_FLOAT && f->field_size == 4); if(reverse_byte_order == 0) return *(float *)(e->data + f->offset_root); else{ - guint32 aInt; - memcpy((void*)&aInt, e->data + f->offset_root, 4); - aInt = ___swab32(aInt); - return ((float)aInt); + void *ptr = e->data + f->offset_root; + guint32 value = bswap_32(*(guint32*)ptr); + return *(float*)&value; } } double ltt_event_get_double(LttEvent *e, LttField *f) { - gboolean reverse_byte_order = LTT_GET_BO(e->tracefile); + g_assert(LTT_HAS_FLOAT(e->tracefile)); + gboolean reverse_byte_order = LTT_GET_FLOAT_BO(e->tracefile); g_assert(f->field_type->type_class == LTT_FLOAT && f->field_size == 8); if(reverse_byte_order == 0) return *(double *)(e->data + f->offset_root); - else{ - guint64 aInt; - memcpy((void*)&aInt, e->data + f->offset_root, 8); - aInt = ___swab64(aInt); - return ((double)aInt); + else { + void *ptr = e->data + f->offset_root; + guint64 value = bswap_64(*(guint64*)ptr); + return *(double*)&value; } }