summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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");
}
}