diff options
-rw-r--r-- | source4/build/pidl/parser.pm | 2 | ||||
-rw-r--r-- | source4/build/pidl/util.pm | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm index 077fcd4385..ac45b4d9bc 100644 --- a/source4/build/pidl/parser.pm +++ b/source4/build/pidl/parser.pm @@ -192,6 +192,8 @@ sub struct_alignment if (defined $structs{$e->{TYPE}}->{DATA}) { $a = union_alignment($structs{$e->{TYPE}}->{DATA}); } + } elsif ($structs{$e->{TYPE}}->{DATA}->{TYPE} eq "ENUM") { + $a = util::type_align($e); } } else { $a = util::type_align($e); diff --git a/source4/build/pidl/util.pm b/source4/build/pidl/util.pm index bd87cf4317..39f84843cb 100644 --- a/source4/build/pidl/util.pm +++ b/source4/build/pidl/util.pm @@ -335,6 +335,11 @@ sub type_align($) return $ret; } + if (is_enum($type)) { + my $ret = type_align(get_enum($type)); + return $ret; + } + # it must be an external type - all we can do is guess return 4; } |