*/
#define BT_LOG_TAG "CTF-WRITER-FIELDS"
-#include <babeltrace/lib-logging-internal.h>
-
-#include <babeltrace/assert-pre-internal.h>
-#include <babeltrace/align-internal.h>
-#include <babeltrace/assert-internal.h>
-#include <babeltrace/compat/fcntl-internal.h>
-#include <babeltrace/compiler-internal.h>
-#include <babeltrace/ctf-writer/field-types-internal.h>
-#include <babeltrace/ctf-writer/fields-internal.h>
-#include <babeltrace/endian-internal.h>
-#include <babeltrace/ctf-writer/object-internal.h>
-#include <babeltrace/ctf-writer/object.h>
-#include <babeltrace/ctfser-internal.h>
+#include <babeltrace2/lib-logging-internal.h>
+
+#include <babeltrace2/assert-pre-internal.h>
+#include <babeltrace2/align-internal.h>
+#include <babeltrace2/assert-internal.h>
+#include <babeltrace2/compat/fcntl-internal.h>
+#include <babeltrace2/compiler-internal.h>
+#include <babeltrace2/ctf-writer/field-types-internal.h>
+#include <babeltrace2/ctf-writer/fields-internal.h>
+#include <babeltrace2/endian-internal.h>
+#include <babeltrace2/ctf-writer/object-internal.h>
+#include <babeltrace2/ctf-writer/object.h>
+#include <babeltrace2/ctfser-internal.h>
#include <float.h>
#include <inttypes.h>
#include <inttypes.h>
struct bt_ctf_field_common_integer *int_field =
BT_CTF_FROM_COMMON(field);
enum bt_ctf_byte_order byte_order;
- union bt_ctfser_int_val value;
BT_ASSERT_PRE_CTF_FIELD_COMMON_IS_SET(field, "Integer field");
BT_LOGV("Serializing CTF writer integer field: addr=%p, native-bo=%s",
byte_order = native_byte_order;
}
- value.i = int_field->payload.signd;
- value.u = int_field->payload.unsignd;
- ret = bt_ctfser_write_int(ctfser, value, int_type->common.alignment,
- int_type->size, int_type->is_signed,
- byte_order == BT_CTF_BYTE_ORDER_LITTLE_ENDIAN ?
- LITTLE_ENDIAN : BIG_ENDIAN);
+ if (int_type->is_signed) {
+ ret = bt_ctfser_write_signed_int(ctfser,
+ int_field->payload.signd, int_type->common.alignment,
+ int_type->size,
+ byte_order == BT_CTF_BYTE_ORDER_LITTLE_ENDIAN ?
+ LITTLE_ENDIAN : BIG_ENDIAN);
+ } else {
+ ret = bt_ctfser_write_unsigned_int(ctfser,
+ int_field->payload.unsignd, int_type->common.alignment,
+ int_type->size,
+ byte_order == BT_CTF_BYTE_ORDER_LITTLE_ENDIAN ?
+ LITTLE_ENDIAN : BIG_ENDIAN);
+ }
+
if (unlikely(ret)) {
BT_LOGE("Cannot serialize integer field: ret=%d", ret);
goto end;