diff options
author | Tim Potter <tpot@samba.org> | 2001-12-10 06:23:52 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2001-12-10 06:23:52 +0000 |
commit | 7ab4731cd9f9fc174f3a8ff668dae66af010d861 (patch) | |
tree | 4035926ed564acc36fd02beabcacf0192402ab24 /source4 | |
parent | 7fd9b2ae1c915789359dc44186a20d09a10c69ef (diff) | |
download | samba-7ab4731cd9f9fc174f3a8ff668dae66af010d861.tar.gz samba-7ab4731cd9f9fc174f3a8ff668dae66af010d861.tar.bz2 samba-7ab4731cd9f9fc174f3a8ff668dae66af010d861.zip |
Fix for pointers to structures in function args.
(This used to be commit e35c62267fb605c4813f7c6178c6061806c74482)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/build/pidl/eparser.pm | 9 |
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"); } } |