summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2005-03-05 16:50:02 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:10:56 -0500
commitdf036e08294ec98a2c7049f7f2fe03de1fd2ae44 (patch)
treee57c62d6f2d2d75daff4c059a0407569d8ec3f1c
parent75d2452c019835faccdeb44908e158da0b8fa75a (diff)
downloadsamba-df036e08294ec98a2c7049f7f2fe03de1fd2ae44.tar.gz
samba-df036e08294ec98a2c7049f7f2fe03de1fd2ae44.tar.bz2
samba-df036e08294ec98a2c7049f7f2fe03de1fd2ae44.zip
r5660: Reduce number of generated "{}"'s
No longer complain about pointers to arrays - we support those. (This used to be commit 128c0ecf030043e81d73aaeda6afb731075f8f9e)
-rw-r--r--source4/build/pidl/ndr.pm13
-rw-r--r--source4/build/pidl/validator.pm3
2 files changed, 8 insertions, 8 deletions
diff --git a/source4/build/pidl/ndr.pm b/source4/build/pidl/ndr.pm
index c460c92c95..8a654f7165 100644
--- a/source4/build/pidl/ndr.pm
+++ b/source4/build/pidl/ndr.pm
@@ -1820,15 +1820,18 @@ sub ParseFunctionElementPull($$)
pidl "NDR_CHECK(ndr_pull_unique_ptr(ndr, &_ptr_$e->{NAME}));";
pidl "r->$inout.$e->{NAME} = NULL;";
pidl "if (_ptr_$e->{NAME}) {";
+ indent;
} elsif ($inout eq "out" && util::has_property($e, "ref")) {
pidl "if (r->$inout.$e->{NAME}) {";
- } else {
- pidl "{";
+ indent;
}
- indent;
+
ParseArrayPull($e, "ndr", "r->$inout.", "NDR_SCALARS|NDR_BUFFERS");
- deindent;
- pidl "}";
+
+ if (need_wire_pointer($e) or ($inout eq "out" and util::has_property($e, "ref"))) {
+ deindent;
+ pidl "}";
+ }
} else {
if ($inout eq "out" && util::has_property($e, "ref")) {
pidl "if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {";
diff --git a/source4/build/pidl/validator.pm b/source4/build/pidl/validator.pm
index cf7df0dcb2..37f2e26e41 100644
--- a/source4/build/pidl/validator.pm
+++ b/source4/build/pidl/validator.pm
@@ -40,9 +40,6 @@ sub el_name($)
sub ValidElement($)
{
my $e = shift;
- if ($e->{POINTERS} && $e->{ARRAY_LEN}) {
- fatal(el_name($e) . " : pidl cannot handle pointers to arrays. Use a substructure instead\n");
- }
if (util::has_property($e, "ptr")) {
fatal(el_name($e) . " : pidl does not support full NDR pointers yet\n");