From df08af841881d331285a56f76a826ebd19b426b8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 14 Sep 2006 12:25:41 +0000 Subject: r18523: Allow [out] on arrays as well as pointers, use in unixinfo. (This used to be commit f67b4d58acd2c3746e5ffeffa804e888ca3c49a5) --- source4/pidl/lib/Parse/Pidl/NDR.pm | 7 ++++--- source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'source4/pidl/lib/Parse') diff --git a/source4/pidl/lib/Parse/Pidl/NDR.pm b/source4/pidl/lib/Parse/Pidl/NDR.pm index 21875a1297..f274836fe7 100644 --- a/source4/pidl/lib/Parse/Pidl/NDR.pm +++ b/source4/pidl/lib/Parse/Pidl/NDR.pm @@ -543,9 +543,10 @@ sub ParseFunction($$$) push (@{$e->{DIRECTION}}, "in") if (has_property($x, "in")); push (@{$e->{DIRECTION}}, "out") if (has_property($x, "out")); - nonfatal($x, "`$e->{NAME}' is [out] argument but not a pointer") - if ($e->{LEVELS}[0]->{TYPE} ne "POINTER") and - grep(/out/, @{$e->{DIRECTION}}); + nonfatal($x, "`$e->{NAME}' is [out] argument but not a pointer or array") + if ($e->{LEVELS}[0]->{TYPE} ne "POINTER" and + $e->{LEVELS}[0]->{TYPE} ne "ARRAY" and + grep(/out/, @{$e->{DIRECTION}})); push (@elements, $e); } diff --git a/source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm b/source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm index fa629e6101..31ea73f7aa 100644 --- a/source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm +++ b/source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm @@ -61,7 +61,7 @@ sub ParseFunction($$) foreach my $e (@{$fn->{ELEMENTS}}) { next unless (grep(/out/, @{$e->{DIRECTION}})); - fatal($e, "[out] argument is not a pointer") if ($e->{LEVELS}[0]->{TYPE} ne "POINTER"); + fatal($e, "[out] argument is not a pointer or array") if ($e->{LEVELS}[0]->{TYPE} ne "POINTER" and $e->{LEVELS}[0]->{TYPE} ne "ARRAY"); pidl "*$e->{NAME} = *r.out.$e->{NAME};"; } -- cgit