diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2005-05-27 18:36:23 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:17:07 -0500 |
commit | 8017286589abfeb9642bf2aea53dccfcb4956143 (patch) | |
tree | 628fa6753964d1afad666a29c3815a4fe370c8ee /source4 | |
parent | 55781cdce67bdba9c6f37024ae1c76c74a8881de (diff) | |
download | samba-8017286589abfeb9642bf2aea53dccfcb4956143.tar.gz samba-8017286589abfeb9642bf2aea53dccfcb4956143.tar.bz2 samba-8017286589abfeb9642bf2aea53dccfcb4956143.zip |
r7037: Add enough pointers in the header file as well
Fix a couple of warnings.
(This used to be commit fcaa9d495c13af5065dd32f8ed65d4260b3a5539)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/build/pidl/ndr_header.pm | 22 | ||||
-rw-r--r-- | source4/librpc/idl/orpc.idl | 4 |
2 files changed, 15 insertions, 11 deletions
diff --git a/source4/build/pidl/ndr_header.pm b/source4/build/pidl/ndr_header.pm index 05c2f1f55c..05265bbf5b 100644 --- a/source4/build/pidl/ndr_header.pm +++ b/source4/build/pidl/ndr_header.pm @@ -60,20 +60,24 @@ sub HeaderElement($) pidl tabs(); HeaderType($element, $element->{TYPE}, ""); pidl " "; - my $pointers = 0; + my $prefix = ""; + my $postfix = ""; foreach my $l (@{$element->{LEVELS}}) { if (($l->{TYPE} eq "POINTER")) { next if ($element->{TYPE} eq "string"); - pidl "*"; - $pointers+=1; - } elsif ($l->{TYPE} eq "ARRAY") { - if (!$pointers and !$l->{IS_FIXED}) { pidl "*"; } - pidl "$element->{NAME}"; - if ($l->{IS_FIXED}) { pidl "[$l->{SIZE_IS}]"; } - last; #FIXME + $prefix .= "*"; + } elsif (($l->{TYPE} eq "ARRAY")) { + my $pl = Ndr::GetPrevLevel($element, $l); + next if ($pl and $pl->{TYPE} eq "POINTER"); + + if ($l->{IS_FIXED}) { + $postfix .= "[$l->{SIZE_IS}]"; + } else { + $prefix .= "*"; + } } elsif ($l->{TYPE} eq "DATA") { - pidl "$element->{NAME}"; + pidl "$prefix$element->{NAME}$postfix"; } } diff --git a/source4/librpc/idl/orpc.idl b/source4/librpc/idl/orpc.idl index 4b80c5bfe6..1934a3cbed 100644 --- a/source4/librpc/idl/orpc.idl +++ b/source4/librpc/idl/orpc.idl @@ -59,7 +59,7 @@ interface ObjectRpcBaseTypes { GUID id; /* Extension identifier. */ uint32 size; /* Extension size. */ - [size_is((size+7)&~7)] uint8 data[]; /* Extension data. */ + [size_is(((size+7)&~7))] uint8 data[]; /* Extension data. */ } ORPC_EXTENT; @@ -68,7 +68,7 @@ interface ObjectRpcBaseTypes { uint32 size; /* Num extents. */ uint32 reserved; /* Must be zero. */ - [size_is((size+1)&~1,), unique] ORPC_EXTENT **extent; /* extents */ + [size_is(((size+1)&~1))] ORPC_EXTENT **extent; /* extents */ } ORPC_EXTENT_ARRAY; |