X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Fevent.c;h=a5b046814027e30f74b3f9410518a85284cebdb0;hb=3054461acbbd00cc70e9e3046050f074e9eec4c9;hp=2827cff9aaf7fd1b038f643b0d96088eff671d09;hpb=d421441814ae10380308a411418c53ea5f05d858;p=lttv.git diff --git a/ltt/branches/poly/ltt/event.c b/ltt/branches/poly/ltt/event.c index 2827cff9..a5b04681 100644 --- a/ltt/branches/poly/ltt/event.c +++ b/ltt/branches/poly/ltt/event.c @@ -614,35 +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; void *ptr = e->data + f->offset_root; -// memcpy((void*)&aInt, e->data + f->offset_root, 4); -// aInt = bswap_32(); -// return ((float)aInt); - return *(float*)bswap_32(*(guint32*)ptr); + 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{ + else { void *ptr = e->data + f->offset_root; - return *(double*)bswap_64(*(guint64*)ptr); - //guint64 aInt; - //memcpy((void*)&aInt, e->data + f->offset_root, 8); - //aInt = ___swab64(aInt); - //return ((double)aInt); + guint64 value = bswap_64(*(guint64*)ptr); + return *(double*)&value; } }