summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/build/pidl/parser.pm2
-rw-r--r--source4/build/pidl/util.pm5
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;
}