diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-12-16 18:02:14 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-12-16 18:02:14 +0100 |
commit | 9692c71aa1552a6415bec185706aa7afdf16c288 (patch) | |
tree | 75a0722633c47b594885227203a41eca0894d581 /pidl/lib/Parse | |
parent | 327218f1cfa604058e3a11a64d72b930efc126d2 (diff) | |
download | samba-9692c71aa1552a6415bec185706aa7afdf16c288.tar.gz samba-9692c71aa1552a6415bec185706aa7afdf16c288.tar.bz2 samba-9692c71aa1552a6415bec185706aa7afdf16c288.zip |
Make some fatal errors non-fatal. This means we generate invalid code in
some cases, but we do print errors. We don't use all generated code yet at the
moment, so this isn't much of a problem.
Diffstat (limited to 'pidl/lib/Parse')
-rw-r--r-- | pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm | 8 | ||||
-rw-r--r-- | pidl/lib/Parse/Pidl/Samba4.pm | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm b/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm index 4109ce9962..9a7a037b54 100644 --- a/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm +++ b/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm @@ -12,7 +12,7 @@ use Exporter; @EXPORT_OK = qw(ParseFunction $res $res_hdr ParseOutputArgument); use strict; -use Parse::Pidl qw(fatal warning); +use Parse::Pidl qw(fatal warning error); use Parse::Pidl::Util qw(has_property ParseExpr); use Parse::Pidl::Samba4 qw(DeclLong); use Parse::Pidl::Samba4::Header qw(GenerateFunctionInEnv); @@ -76,7 +76,11 @@ sub ParseOutputArgument($$$) my ($self, $fn, $e) = @_; my $level = 0; - fatal($e->{ORIGINAL}, "[out] argument is not a pointer or array") if ($e->{LEVELS}[0]->{TYPE} ne "POINTER" and $e->{LEVELS}[0]->{TYPE} ne "ARRAY"); + if ($e->{LEVELS}[0]->{TYPE} ne "POINTER" and $e->{LEVELS}[0]->{TYPE} ne "ARRAY") { + $self->pidl("return NT_STATUS_NOT_SUPPORTED;"); + error($e->{ORIGINAL}, "[out] argument is not a pointer or array"); + return; + } if ($e->{LEVELS}[0]->{TYPE} eq "POINTER") { $level = 1; diff --git a/pidl/lib/Parse/Pidl/Samba4.pm b/pidl/lib/Parse/Pidl/Samba4.pm index 5bdb91ee25..20c518dceb 100644 --- a/pidl/lib/Parse/Pidl/Samba4.pm +++ b/pidl/lib/Parse/Pidl/Samba4.pm @@ -12,7 +12,7 @@ require Exporter; use Parse::Pidl::Util qw(has_property is_constant); use Parse::Pidl::NDR qw(GetNextLevel); use Parse::Pidl::Typelist qw(mapTypeName scalar_is_reference); -use Parse::Pidl qw(fatal); +use Parse::Pidl qw(fatal error); use strict; use vars qw($VERSION); @@ -69,7 +69,7 @@ sub NumStars($;$) $n++; } - fatal($e->{ORIGINAL}, "Too few pointers $n < $d") if ($n < $d); + error($e->{ORIGINAL}, "Too few pointers $n < $d") if ($n < $d); $n -= $d; |