From d720f3d2e40daee197a228924f2301c2c6ddd392 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 11 Nov 2003 06:20:18 +0000 Subject: fixed handling on pointers to arrays of structures in unions (This used to be commit a29145df04d08c13ee1b019b2de57ffd6883907a) --- source4/build/pidl/parser.pm | 2 ++ source4/build/pidl/util.pm | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'source4/build/pidl') diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm index b52026a8d3..14314886dc 100644 --- a/source4/build/pidl/parser.pm +++ b/source4/build/pidl/parser.pm @@ -276,6 +276,8 @@ sub ParseElementPullBuffer($$$) ParseElementPullSwitch($e, $var_prefix, $ndr_flags, $switch); } elsif (util::is_builtin_type($e->{TYPE})) { $res .= "\t\tNDR_CHECK(ndr_pull_$e->{TYPE}(ndr, $cprefix$var_prefix$e->{NAME}));\n"; + } elsif ($e->{POINTERS}) { + $res .= "\t\tNDR_CHECK(ndr_pull_$e->{TYPE}(ndr, NDR_SCALARS|NDR_BUFFERS, $cprefix$var_prefix$e->{NAME}));\n"; } else { $res .= "\t\tNDR_CHECK(ndr_pull_$e->{TYPE}(ndr, $ndr_flags, $cprefix$var_prefix$e->{NAME}));\n"; } diff --git a/source4/build/pidl/util.pm b/source4/build/pidl/util.pm index 17d1d146ab..72176abab3 100644 --- a/source4/build/pidl/util.pm +++ b/source4/build/pidl/util.pm @@ -235,7 +235,9 @@ sub is_pure_scalar($) if (has_property($e, "ref")) { return 1; } - if (is_scalar_type($e->{TYPE}) && !$e->{POINTERS}) { + if (is_scalar_type($e->{TYPE}) && + !$e->{POINTERS} && + !array_size($e)) { return 1; } return 0; -- cgit