summaryrefslogtreecommitdiff
path: root/source4/pidl/lib/Parse/Pidl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl')
-rw-r--r--source4/pidl/lib/Parse/Pidl/NDR.pm8
1 files changed, 4 insertions, 4 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/NDR.pm b/source4/pidl/lib/Parse/Pidl/NDR.pm
index 7d8907c6b5..003eaf0ba7 100644
--- a/source4/pidl/lib/Parse/Pidl/NDR.pm
+++ b/source4/pidl/lib/Parse/Pidl/NDR.pm
@@ -173,9 +173,9 @@ sub GetElementLevelTable($$)
#
# --metze
#
- if ($i == 1) {
- $pt = pointer_type($e);
- } else {
+ $pt = pointer_type($e);
+ if ($i > 1) {
+ $is_deferred = 1 if ($pt ne "ref" and $e->{PARENT}->{TYPE} eq "FUNCTION");
$pt = $pointer_default;
}
@@ -195,7 +195,7 @@ sub GetElementLevelTable($$)
$pointer_idx++;
# everything that follows will be deferred
- $is_deferred = 1 if ($e->{PARENT}->{TYPE} ne "FUNCTION");
+ $is_deferred = 1 if ($level ne "TOP");
my $array_size = shift @size_is;
my $array_length;