X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=org.eclipse.linuxtools.ctf.core%2Fsrc%2Forg%2Feclipse%2Flinuxtools%2Finternal%2Fctf%2Fcore%2Fevent%2Fmetadata%2FIOStructGen.java;h=7e3071960d424357027bff3dbc61bb1fbe9dfdeb;hb=fd74e6c1fd47b0d23a876edf2a90beb0fe042c85;hp=45707a7df9af074f335f481a35a7bde4e2e6e666;hpb=a04464b11ce0e4420a036638fecd07f5414dae47;p=deliverable%2Ftracecompass.git diff --git a/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/internal/ctf/core/event/metadata/IOStructGen.java b/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/internal/ctf/core/event/metadata/IOStructGen.java index 45707a7df9..7e3071960d 100644 --- a/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/internal/ctf/core/event/metadata/IOStructGen.java +++ b/org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/internal/ctf/core/event/metadata/IOStructGen.java @@ -1256,7 +1256,7 @@ public class IOStructGen { } } - floatDeclaration = new FloatDeclaration(exponent, mantissa, byteOrder, encoding); + floatDeclaration = new FloatDeclaration(exponent, mantissa, byteOrder, encoding, alignment); assert (floatDeclaration != null); return floatDeclaration; @@ -1387,7 +1387,7 @@ public class IOStructGen { } integerDeclaration = new IntegerDeclaration((int) size, signed, base, - byteOrder, encoding, clock); + byteOrder, encoding, clock, alignment); assert (integerDeclaration != null); return integerDeclaration; @@ -1551,6 +1551,12 @@ public class IOStructGen { /* Parse the body */ parseStructBody(structBody, structDeclaration); + long maxFieldAlign = -1; + for( IDeclaration field : structDeclaration.getFields().values()) + { + maxFieldAlign = Math.max(maxFieldAlign, field.getAlignment()); + } + structDeclaration.setMinAlign(maxFieldAlign); /* If struct has name, add it to the current scope. */ if (hasName) {