summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/pidl/lib/Parse/Pidl/NDR.pm9
1 files changed, 5 insertions, 4 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/NDR.pm b/source4/pidl/lib/Parse/Pidl/NDR.pm
index a80bb954c1..d017c455a6 100644
--- a/source4/pidl/lib/Parse/Pidl/NDR.pm
+++ b/source4/pidl/lib/Parse/Pidl/NDR.pm
@@ -70,8 +70,6 @@ my $scalar_alignment = {
'ipv4address' => 4
};
-
-
sub nonfatal($$)
{
my ($e,$s) = @_;
@@ -135,8 +133,7 @@ sub GetElementLevelTable($)
$is_string = 1;
delete($e->{PROPERTIES}->{string});
} else {
- print "$e->{FILE}:$e->{LINE}: Must specify size_is() for conformant array!\n";
- exit 1;
+ fatal($e, "Must specify size_is() for conformant array!")
}
if (($length = shift @length_is) or $is_string) {
@@ -184,6 +181,10 @@ sub GetElementLevelTable($)
LEVEL => $level
});
+ nonfatal($e, "top-level pointer `$e->{NAME}' is not a \[ref\] pointer")
+ if ($i == 1 and pointer_type($e) ne "ref" and
+ $e->{PARENT}->{TYPE} eq "FUNCTION");
+
$pointer_idx++;
# everything that follows will be deferred