diff options
-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"); } } |