Declare DO_DUMP_FUNC() before calling it and call normally so that
perl can check its prototype.
This commit is contained in:
parent
0218e0af2d
commit
11a7b29a61
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue