1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

r12490: Fix --warn-compat

This commit is contained in:
Jelmer Vernooij 2005-12-26 02:14:18 +00:00 committed by Gerald (Jerry) Carter
parent cfaa52cdba
commit ba6a767f1b
3 changed files with 23 additions and 47 deletions

View File

@ -7,6 +7,7 @@
a (regular) remote error occurs
- support nested elements
- generate names for anonymous tagged types
- auto-alloc [ref] pointers for Samba4 during pull if they were NULL

View File

@ -74,29 +74,19 @@ my %supported_properties = (
"length_is" => ["ELEMENT"],
);
my($res);
sub warning($$)
{
my $l = shift;
my $m = shift;
print "$l->{FILE}:$l->{LINE}:Warning:$m\n";
}
sub error($$)
{
my ($l,$m) = @_;
print "$l->{FILE}:$l->{LINE}:$m\n";
print STDERR "$l->{FILE}:$l->{LINE}:warning:$m\n";
}
sub CheckTypedef($)
{
my $td = shift;
my ($td) = @_;
if (has_property($td, "nodiscriminant")) {
error($td, "nodiscriminant property not supported");
warning($td, "nodiscriminant property not supported");
}
if ($td->{TYPE} eq "BITMAP") {
@ -121,7 +111,7 @@ sub CheckElement($)
my $e = shift;
if (has_property($e, "noheader")) {
error($e, "noheader property not supported");
warning($e, "noheader property not supported");
return;
}
@ -131,30 +121,28 @@ sub CheckElement($)
}
if (has_property($e, "compression")) {
error($e, "compression() property not supported");
warning($e, "compression() property not supported");
}
if (has_property($e, "obfuscation")) {
error($e, "obfuscation() property not supported");
warning($e, "obfuscation() property not supported");
}
if (has_property($e, "sptr")) {
error($e, "sptr() pointer property not supported");
warning($e, "sptr() pointer property not supported");
}
if (has_property($e, "relative")) {
error($e, "relative() pointer property not supported");
warning($e, "relative() pointer property not supported");
}
if (has_property($td, "flag")) {
if (has_property($e, "flag")) {
warning($e, "ignoring flag() property");
}
if (has_property($td, "value")) {
if (has_property($e, "value")) {
warning($e, "ignoring value() property");
}
StripProperties($e);
}
sub CheckFunction($)
@ -162,12 +150,8 @@ sub CheckFunction($)
my $fn = shift;
if (has_property($fn, "noopnum")) {
error($fn, "noopnum not converted. Opcodes will be out of sync.");
warning($fn, "noopnum not converted. Opcodes will be out of sync.");
}
StripProperties($fn);
}
sub CheckInterface($)
@ -176,11 +160,9 @@ sub CheckInterface($)
if (has_property($if, "pointer_default_top") and
$if->{PROPERTIES}->{pointer_default_top} ne "ref") {
error($if, "pointer_default_top() is pidl-specific");
warning($if, "pointer_default_top() is pidl-specific");
}
StripProperties($if);
foreach my $x (@{$if->{DATA}}) {
if ($x->{TYPE} eq "DECLARE") {
warning($if, "the declare keyword is pidl-specific");
@ -193,14 +175,10 @@ sub Check($)
{
my $pidl = shift;
my $nidl = [];
my $res = "";
foreach my $x (@{$pidl}) {
push (@$nidl, CheckInterface($x))
if ($x->{TYPE} eq "INTERFACE");
foreach (@{$pidl}) {
push (@$nidl, CheckInterface($_)) if ($_->{TYPE} eq "INTERFACE");
}
return $res;
}
1;

View File

@ -3,8 +3,8 @@
package Parse::Pidl::Samba4::COM::Header;
use Parse::Pidl::Typelist;
use Parse::Pidl::Util qw(has_property);
use Parse::Pidl::Typelist qw(mapType);
use Parse::Pidl::Util qw(has_property is_constant);
use vars qw($VERSION);
$VERSION = '0.01';
@ -18,7 +18,7 @@ sub GetArgumentProtoList($)
foreach my $a (@{$f->{ELEMENTS}}) {
$res .= ", " . Parse::Pidl::Typelist::mapType($a->{TYPE}) . " ";
$res .= ", " . mapType($a->{TYPE}) . " ";
my $l = $a->{POINTERS};
$l-- if (Parse::Pidl::Typelist::scalar_is_reference($a->{TYPE}));
@ -26,13 +26,12 @@ sub GetArgumentProtoList($)
$res .= "*";
}
if (defined $a->{ARRAY_LEN}[0] &&
!Parse::Pidl::Util::is_constant($a->{ARRAY_LEN}[0]) &&
if (defined $a->{ARRAY_LEN}[0] && !is_constant($a->{ARRAY_LEN}[0]) &&
!$a->{POINTERS}) {
$res .= "*";
}
$res .= $a->{NAME};
if (defined $a->{ARRAY_LEN}[0] && Parse::Pidl::Util::is_constant($a->{ARRAY_LEN}[0])) {
if (defined $a->{ARRAY_LEN}[0] && is_constant($a->{ARRAY_LEN}[0])) {
$res .= "[$a->{ARRAY_LEN}[0]]";
}
}
@ -45,9 +44,7 @@ sub GetArgumentList($)
my $f = shift;
my $res = "";
foreach my $a (@{$f->{ELEMENTS}}) {
$res .= ", $a->{NAME}";
}
foreach (@{$f->{ELEMENTS}}) { $res .= ", $_->{NAME}"; }
return $res;
}
@ -65,7 +62,7 @@ sub HeaderVTable($)
my $data = $interface->{DATA};
foreach my $d (@{$data}) {
$res .= "\t" . Parse::Pidl::Typelist::mapType($d->{RETURN_TYPE}) . " (*$d->{NAME}) (struct $interface->{NAME} *d, TALLOC_CTX *mem_ctx" . GetArgumentProtoList($d) . ");\\\n" if ($d->{TYPE} eq "FUNCTION");
$res .= "\t" . mapType($d->{RETURN_TYPE}) . " (*$d->{NAME}) (struct $interface->{NAME} *d, TALLOC_CTX *mem_ctx" . GetArgumentProtoList($d) . ");\\\n" if ($d->{TYPE} eq "FUNCTION");
}
$res .= "\n";
$res .= "struct $interface->{NAME}_vtable {\n";