summaryrefslogtreecommitdiff
path: root/source4/build/pidl/parser.pm
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-11-21 22:34:45 +0000
committerAndrew Tridgell <tridge@samba.org>2003-11-21 22:34:45 +0000
commit0a0f8b5e3a67b8577adf8ece28ed30a092d8f284 (patch)
tree044fbb4622b922ddfa7fa17d833f98395b628f64 /source4/build/pidl/parser.pm
parent32831d5af9e0dff5a36cd59e5cf0f64c464ed93d (diff)
downloadsamba-0a0f8b5e3a67b8577adf8ece28ed30a092d8f284.tar.gz
samba-0a0f8b5e3a67b8577adf8ece28ed30a092d8f284.tar.bz2
samba-0a0f8b5e3a67b8577adf8ece28ed30a092d8f284.zip
fixed a bug with pushing non-pointer unions
(This used to be commit bc2fbc79cc7c0308934f351b067a88b4b397de37)
Diffstat (limited to 'source4/build/pidl/parser.pm')
-rw-r--r--source4/build/pidl/parser.pm4
1 files changed, 3 insertions, 1 deletions
diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm
index c57610e9ae..2ed5fd27db 100644
--- a/source4/build/pidl/parser.pm
+++ b/source4/build/pidl/parser.pm
@@ -415,7 +415,9 @@ sub ParseElementPushSwitch($$$$)
if (!defined $utype ||
!util::has_property($utype->{DATA}, "nodiscriminant")) {
my $e2 = find_sibling($e, $switch);
- pidl "\tNDR_CHECK(ndr_push_$e2->{TYPE}(ndr, $switch_var));\n";
+ pidl "\tif (($ndr_flags) & NDR_SCALARS) {\n";
+ pidl "\t\tNDR_CHECK(ndr_push_$e2->{TYPE}(ndr, $switch_var));\n";
+ pidl "\t}\n";
}
my $sub_size = util::has_property($e, "subcontext");