summaryrefslogtreecommitdiff
path: root/source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm
diff options
context:
space:
mode:
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm')
-rw-r--r--source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm8
1 files changed, 5 insertions, 3 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm b/source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm
index da60a02059..2ccbc057fc 100644
--- a/source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm
+++ b/source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm
@@ -1624,15 +1624,17 @@ sub ParseUnionPrint($$)
my ($e,$name) = @_;
my $have_default = 0;
- pidl "int level = ndr_print_get_switch_value(ndr, r);";
-
+ pidl "int level;";
foreach my $el (@{$e->{ELEMENTS}}) {
DeclareArrayVariables($el);
}
- pidl "ndr_print_union(ndr, name, level, \"$name\");";
start_flags($e);
+ pidl "level = ndr_print_get_switch_value(ndr, r);";
+
+ pidl "ndr_print_union(ndr, name, level, \"$name\");";
+
pidl "switch (level) {";
indent;
foreach my $el (@{$e->{ELEMENTS}}) {