summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2001-12-10 06:23:52 +0000
committerTim Potter <tpot@samba.org>2001-12-10 06:23:52 +0000
commit7ab4731cd9f9fc174f3a8ff668dae66af010d861 (patch)
tree4035926ed564acc36fd02beabcacf0192402ab24
parent7fd9b2ae1c915789359dc44186a20d09a10c69ef (diff)
downloadsamba-7ab4731cd9f9fc174f3a8ff668dae66af010d861.tar.gz
samba-7ab4731cd9f9fc174f3a8ff668dae66af010d861.tar.bz2
samba-7ab4731cd9f9fc174f3a8ff668dae66af010d861.zip
Fix for pointers to structures in function args.
(This used to be commit e35c62267fb605c4813f7c6178c6061806c74482)
-rw-r--r--source4/build/pidl/eparser.pm9
1 files changed, 9 insertions, 0 deletions
diff --git a/source4/build/pidl/eparser.pm b/source4/build/pidl/eparser.pm
index f2129dc59a..420668109d 100644
--- a/source4/build/pidl/eparser.pm
+++ b/source4/build/pidl/eparser.pm
@@ -236,6 +236,15 @@ sub ParseFunctionArg($$)
my($io) = shift; # "in" or "out"
if (has_property($arg->{PROPERTIES}, $io)) {
+
+ # For some reason, pointers to elements in function definitions
+ # aren't parsed.
+
+ if (defined($arg->{POINTERS}) && !is_scalar_type($arg->{TYPE})) {
+ $arg->{POINTERS} -= 1, if ($arg->{POINTERS} > 0);
+ delete($arg->{POINTERS}), if ($arg->{POINTERS} == 0);
+ }
+
ParseElement($arg, "scalars|buffers");
}
}