- switch(td->type) {
- case INT_FIXED:
- case UINT_FIXED:
- case CHAR:
- case UCHAR:
- case SHORT:
- case USHORT:
- case INT:
- case UINT:
- case FLOAT:
- case POINTER:
- case LONG:
- case ULONG:
- case SIZE_T:
- case SSIZE_T:
- case OFF_T:
- case ENUM:
- fprintf(fd, "sizeof(");
- if(print_type(td, fd, 0, basename, "")) return 1;
- fprintf(fd, ")");
- break;
- case STRING:
- fprintf(fd, "sizeof(char)");
- break;
- case SEQUENCE:
- fprintf(fd, "lttng_get_alignment_sequence_%s(&obj->%s)", basename,
- field_name);
- break;
- case STRUCT:
- fprintf(fd, "lttng_get_alignment_struct_%s(&obj->%s)", basename,
- field_name);
- break;
- case UNION:
- fprintf(fd, "lttng_get_alignment_union_%s(&obj->%s)", basename,
- field_name);
- break;
- case ARRAY:
- fprintf(fd, "lttng_get_alignment_array_%s(obj->%s)", basename,
- field_name);
- break;
- case NONE:
- printf("error : type NONE unexpected\n");
- return 1;
- break;
+ if(field_name[0] == '\0') {
+ /* We are in a write function : it's the obj that we must align. */
+ switch(td->type) {
+ case SEQUENCE:
+ fprintf(fd, "lttng_get_alignment_sequence_%s(obj)", basename);
+ break;
+ case STRUCT:
+ fprintf(fd, "lttng_get_alignment_struct_%s(obj)", basename);
+ break;
+ case UNION:
+ fprintf(fd, "lttng_get_alignment_union_%s(obj)", basename);
+ break;
+ case ARRAY:
+ fprintf(fd, "lttng_get_alignment_array_%s(obj)", basename);
+ break;
+ default:
+ printf("error : type unexpected\n");
+ return 1;
+ break;
+ }
+ } else {
+
+ switch(td->type) {
+ case INT_FIXED:
+ case UINT_FIXED:
+ case CHAR:
+ case UCHAR:
+ case SHORT:
+ case USHORT:
+ case INT:
+ case UINT:
+ case FLOAT:
+ case POINTER:
+ case LONG:
+ case ULONG:
+ case SIZE_T:
+ case SSIZE_T:
+ case OFF_T:
+ case ENUM:
+ fprintf(fd, "sizeof(");
+ if(print_type(td, fd, 0, basename, "")) return 1;
+ fprintf(fd, ")");
+ break;
+ case STRING:
+ fprintf(fd, "sizeof(char)");
+ break;
+ case SEQUENCE:
+ fprintf(fd, "lttng_get_alignment_sequence_%s(&obj->%s)", basename,
+ field_name);
+ break;
+ case STRUCT:
+ fprintf(fd, "lttng_get_alignment_struct_%s(&obj->%s)", basename,
+ field_name);
+ break;
+ case UNION:
+ fprintf(fd, "lttng_get_alignment_union_%s(&obj->%s)", basename,
+ field_name);
+ break;
+ case ARRAY:
+ fprintf(fd, "lttng_get_alignment_array_%s(obj->%s)", basename,
+ field_name);
+ break;
+ case NONE:
+ printf("error : type NONE unexpected\n");
+ return 1;
+ break;
+ }