svn commit: samba r18523 - in branches/SAMBA_4_0/source: librpc/idl pidl/lib/Parse/Pidl pidl/lib/Parse/Pidl/Samba3

jelmer at samba.org jelmer at samba.org
Thu Sep 14 12:25:44 GMT 2006


Author: jelmer
Date: 2006-09-14 12:25:41 +0000 (Thu, 14 Sep 2006)
New Revision: 18523

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=18523

Log:
Allow [out] on arrays as well as pointers, use in unixinfo.

Modified:
   branches/SAMBA_4_0/source/librpc/idl/unixinfo.idl
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/unixinfo.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/unixinfo.idl	2006-09-14 12:23:02 UTC (rev 18522)
+++ branches/SAMBA_4_0/source/librpc/idl/unixinfo.idl	2006-09-14 12:25:41 UTC (rev 18523)
@@ -51,6 +51,6 @@
         NTSTATUS unixinfo_GetPWUid (
 		[in,out,ref,range(0,1023)] uint32 *count,
 		[in,size_is(*count)] hyper uids[],
-		[out,size_is(*count)] unixinfo_GetPWUidInfo *infos
+		[out,size_is(*count)] unixinfo_GetPWUidInfo infos[*]
         );
 }

Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm	2006-09-14 12:23:02 UTC (rev 18522)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm	2006-09-14 12:25:41 UTC (rev 18523)
@@ -543,9 +543,10 @@
 		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);
 	}

Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm	2006-09-14 12:23:02 UTC (rev 18522)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm	2006-09-14 12:25:41 UTC (rev 18523)
@@ -61,7 +61,7 @@
 	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};";
 	}



More information about the samba-cvs mailing list