diff options
Diffstat (limited to 'source4/pidl/lib')
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm | 8 |
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}}) { |