From 65cfa18855abc712faa1bf0cb5c3b88ab8df4b28 Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Mon, 23 Jun 2014 11:34:19 -0700 Subject: [PATCH] force_align was applied after struct size was set. Change-Id: I9a35afac41f27dfdbc5e793c41ec768732cdc2a1 Tested: on Windows. --- src/idl_parser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 4e053ec36..fd0cff23b 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -638,8 +638,6 @@ void Parser::ParseDecl() { struct_def.attributes.Lookup("original_order") == nullptr && !fixed; Expect('{'); while (token_ != '}') ParseField(struct_def); - struct_def.PadLastField(struct_def.minalign); - Expect('}'); auto force_align = struct_def.attributes.Lookup("force_align"); if (fixed && force_align) { auto align = static_cast(atoi(force_align->constant.c_str())); @@ -651,6 +649,8 @@ void Parser::ParseDecl() { "struct\'s natural alignment to 256"); struct_def.minalign = align; } + struct_def.PadLastField(struct_def.minalign); + Expect('}'); } bool Parser::SetRootType(const char *name) {