Declare DO_DUMP_FUNC() before calling it and call normally so that

perl can check its prototype.
This commit is contained in:
Francois Gouget 2004-10-21 19:58:39 +00:00 committed by Alexandre Julliard
parent 0218e0af2d
commit 11a7b29a61
1 changed files with 44 additions and 44 deletions

View File

@ -49,6 +49,48 @@ my @trace_lines = ();
### Generate a dumping function
sub DO_DUMP_FUNC($$@)
{
my $name = shift;
my $req = shift;
push @trace_lines, "static void dump_${name}_$req( const struct ${name}_$req *req )\n{\n";
while ($#_ >= 0)
{
my $type = shift;
my $var = shift;
if (defined($formats{$type}))
{
if ($formats{$type} =~ /^&(.*)/)
{
my $func = $1;
push @trace_lines, " fprintf( stderr, \" $var=\" );\n";
push @trace_lines, " $func( &req->$var );\n";
push @trace_lines, " fprintf( stderr, \",\" );\n" if ($#_ > 0);
}
else
{
push @trace_lines, " fprintf( stderr, \" $var=$formats{$type}";
push @trace_lines, "," if ($#_ > 0);
push @trace_lines, "\", ";
# In the case of time_t we need to cast the parameter to
# long to match the associated "%ld" printf modifier.
push @trace_lines, "(long)" if( $type eq "time_t" );
push @trace_lines, "req->$var );\n";
}
}
else # must be some varargs format
{
my $func = $type;
push @trace_lines, " fprintf( stderr, \" $var=\" );\n";
push @trace_lines, " $func;\n";
push @trace_lines, " fputc( ',', stderr );\n" if ($#_ > 0);
}
}
push @trace_lines, "}\n\n";
}
### Parse the request definitions
sub PARSE_REQUESTS()
@ -116,11 +158,11 @@ sub PARSE_REQUESTS()
# got a complete request
push @requests, $name;
&DO_DUMP_FUNC( $name, "request", @in_struct);
DO_DUMP_FUNC( $name, "request", @in_struct);
if ($#out_struct >= 0)
{
$replies{$name} = 1;
&DO_DUMP_FUNC( $name, "reply", @out_struct);
DO_DUMP_FUNC( $name, "reply", @out_struct);
}
$state = 1;
next;
@ -167,48 +209,6 @@ sub PARSE_REQUESTS()
close PROTOCOL;
}
### Generate a dumping function
sub DO_DUMP_FUNC($$@)
{
my $name = shift;
my $req = shift;
push @trace_lines, "static void dump_${name}_$req( const struct ${name}_$req *req )\n{\n";
while ($#_ >= 0)
{
my $type = shift;
my $var = shift;
if (defined($formats{$type}))
{
if ($formats{$type} =~ /^&(.*)/)
{
my $func = $1;
push @trace_lines, " fprintf( stderr, \" $var=\" );\n";
push @trace_lines, " $func( &req->$var );\n";
push @trace_lines, " fprintf( stderr, \",\" );\n" if ($#_ > 0);
}
else
{
push @trace_lines, " fprintf( stderr, \" $var=$formats{$type}";
push @trace_lines, "," if ($#_ > 0);
push @trace_lines, "\", ";
# In the case of time_t we need to cast the parameter to
# long to match the associated "%ld" printf modifier.
push @trace_lines, "(long)" if( $type eq "time_t" );
push @trace_lines, "req->$var );\n";
}
}
else # must be some varargs format
{
my $func = $type;
push @trace_lines, " fprintf( stderr, \" $var=\" );\n";
push @trace_lines, " $func;\n";
push @trace_lines, " fputc( ',', stderr );\n" if ($#_ > 0);
}
}
push @trace_lines, "}\n\n";
}
### Retrieve the server protocol version from the existing server_protocol.h file
sub GET_PROTOCOL_VERSION()